<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621681043161"><span id="local-6989586621681043162"><span id="local-6989586621681043163"></span></span></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.CmmToAsm.Dwarf.Types</span><span>
</span><span id="line-2"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><span class="hs-comment">-- * Dwarf information</span></span><span>
</span><span id="line-3"></span><span>    </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier">DwarfInfo</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-4"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfo"><span class="hs-identifier">pprDwarfInfo</span></a></span><span>
</span><span id="line-5"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrevDecls"><span class="hs-identifier">pprAbbrevDecls</span></a></span><span>
</span><span id="line-6"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Dwarf address range table</span></span><span>
</span><span id="line-7"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfARange"><span class="hs-identifier">DwarfARange</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-8"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfARanges"><span class="hs-identifier">pprDwarfARanges</span></a></span><span>
</span><span id="line-9"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Dwarf frame</span></span><span>
</span><span id="line-10"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrame"><span class="hs-identifier">DwarfFrame</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameProc"><span class="hs-identifier">DwarfFrameProc</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier">DwarfFrameBlock</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-11"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfFrame"><span class="hs-identifier">pprDwarfFrame</span></a></span><span>
</span><span id="line-12"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Utilities</span></span><span>
</span><span id="line-13"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier">pprByte</span></a></span><span>
</span><span id="line-14"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprHalf"><span class="hs-identifier">pprHalf</span></a></span><span>
</span><span id="line-15"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier">pprData4'</span></a></span><span>
</span><span id="line-16"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwWord"><span class="hs-identifier">pprDwWord</span></a></span><span>
</span><span id="line-17"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier">pprWord</span></a></span><span>
</span><span id="line-18"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier">pprLEBWord</span></a></span><span>
</span><span id="line-19"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier">pprLEBInt</span></a></span><span>
</span><span id="line-20"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#wordAlign"><span class="hs-identifier">wordAlign</span></a></span><span>
</span><span id="line-21"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#sectionOffset"><span class="hs-identifier">sectionOffset</span></a></span><span>
</span><span id="line-22"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-23"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-24"></span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-26"></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html"><span class="hs-identifier">GHC.Cmm.DebugBlock</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html"><span class="hs-identifier">GHC.Cmm.CLabel</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html"><span class="hs-identifier">GHC.Cmm.Expr</span></a></span><span>         </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier">GlobalReg</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Encoding.html"><span class="hs-identifier">GHC.Utils.Encoding</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#"><span class="hs-identifier">GHC.Platform</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html"><span class="hs-identifier">GHC.Platform.Reg</span></a></span><span>
</span><span id="line-36"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-38"></span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Constants.html"><span class="hs-identifier">GHC.CmmToAsm.Dwarf.Constants</span></a></span><span>
</span><span id="line-40"></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../bytestring/src/Data.ByteString.html#"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">BS</span></span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../transformers/src/Control.Monad.Trans.State.Strict.html#"><span class="hs-identifier">Control.Monad.Trans.State.Strict</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">S</span></span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Monad.html#zipWithM"><span class="hs-identifier">zipWithM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#join"><span class="hs-identifier">join</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#"><span class="hs-identifier">Data.Bits</span></a></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.html#"><span class="hs-identifier">Data.Map</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Map</span></span><span>
</span><span id="line-46"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Word.html#"><span class="hs-identifier">Data.Word</span></a></span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span>
</span><span id="line-48"></span><span>
</span><span id="line-49"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Platform.Regs.html"><span class="hs-identifier">GHC.Platform.Regs</span></a></span><span>
</span><span id="line-50"></span><span>
</span><span id="line-51"></span><span class="hs-comment">-- | Individual dwarf records. Each one will be encoded as an entry in</span><span>
</span><span id="line-52"></span><span class="hs-comment">-- the @.debug_info@ section.</span><span>
</span><span id="line-53"></span><span class="hs-keyword">data</span><span> </span><span id="DwarfInfo"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier hs-var">DwarfInfo</span></a></span></span><span>
</span><span id="line-54"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DwarfCompileUnit"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfCompileUnit"><span class="hs-identifier hs-var">DwarfCompileUnit</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="dwChildren"><span class="annot"><span class="annottext">DwarfInfo -&gt; [DwarfInfo]
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwChildren"><span class="hs-identifier hs-var hs-var">dwChildren</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier hs-type">DwarfInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-55"></span><span>                     </span><span class="hs-special">,</span><span> </span><span id="dwName"><span class="annot"><span class="annottext">DwarfInfo -&gt; String
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwName"><span class="hs-identifier hs-var hs-var">dwName</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-56"></span><span>                     </span><span class="hs-special">,</span><span> </span><span id="dwProducer"><span class="annot"><span class="annottext">DwarfInfo -&gt; String
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwProducer"><span class="hs-identifier hs-var hs-var">dwProducer</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-57"></span><span>                     </span><span class="hs-special">,</span><span> </span><span id="dwCompDir"><span class="annot"><span class="annottext">DwarfInfo -&gt; String
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCompDir"><span class="hs-identifier hs-var hs-var">dwCompDir</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-58"></span><span>                     </span><span class="hs-special">,</span><span> </span><span id="dwLowLabel"><span class="annot"><span class="annottext">DwarfInfo -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwLowLabel"><span class="hs-identifier hs-var hs-var">dwLowLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-59"></span><span>                     </span><span class="hs-special">,</span><span> </span><span id="dwHighLabel"><span class="annot"><span class="annottext">DwarfInfo -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwHighLabel"><span class="hs-identifier hs-var hs-var">dwHighLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-60"></span><span>                     </span><span class="hs-special">,</span><span> </span><span id="dwLineLabel"><span class="annot"><span class="annottext">DwarfInfo -&gt; PtrString
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwLineLabel"><span class="hs-identifier hs-var hs-var">dwLineLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-61"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwarfSubprogram"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfSubprogram"><span class="hs-identifier hs-var">DwarfSubprogram</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="dwChildren"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#dwChildren"><span class="hs-identifier hs-var">dwChildren</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier hs-type">DwarfInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-62"></span><span>                    </span><span class="hs-special">,</span><span> </span><span id="dwName"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#dwName"><span class="hs-identifier hs-var">dwName</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-63"></span><span>                    </span><span class="hs-special">,</span><span> </span><span id="dwLabel"><span class="annot"><span class="annottext">DwarfInfo -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwLabel"><span class="hs-identifier hs-var hs-var">dwLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-64"></span><span>                    </span><span class="hs-special">,</span><span> </span><span id="dwParent"><span class="annot"><span class="annottext">DwarfInfo -&gt; Maybe CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwParent"><span class="hs-identifier hs-var hs-var">dwParent</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-65"></span><span>                      </span><span class="hs-comment">-- ^ label of DIE belonging to the parent tick</span><span>
</span><span id="line-66"></span><span>                    </span><span class="hs-special">}</span><span>
</span><span id="line-67"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwarfBlock"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfBlock"><span class="hs-identifier hs-var">DwarfBlock</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="dwChildren"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#dwChildren"><span class="hs-identifier hs-var">dwChildren</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier hs-type">DwarfInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-68"></span><span>               </span><span class="hs-special">,</span><span> </span><span id="dwLabel"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#dwLabel"><span class="hs-identifier hs-var">dwLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-69"></span><span>               </span><span class="hs-special">,</span><span> </span><span id="dwMarker"><span class="annot"><span class="annottext">DwarfInfo -&gt; Maybe CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwMarker"><span class="hs-identifier hs-var hs-var">dwMarker</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-70"></span><span>               </span><span class="hs-special">}</span><span>
</span><span id="line-71"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwarfSrcNote"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfSrcNote"><span class="hs-identifier hs-var">DwarfSrcNote</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="dwSrcSpan"><span class="annot"><span class="annottext">DwarfInfo -&gt; RealSrcSpan
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwSrcSpan"><span class="hs-identifier hs-var hs-var">dwSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span>
</span><span id="line-72"></span><span>                 </span><span class="hs-special">}</span><span>
</span><span id="line-73"></span><span>
</span><span id="line-74"></span><span class="hs-comment">-- | Abbreviation codes used for encoding above records in the</span><span>
</span><span id="line-75"></span><span class="hs-comment">-- @.debug_info@ section.</span><span>
</span><span id="line-76"></span><span class="hs-keyword">data</span><span> </span><span id="DwarfAbbrev"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfAbbrev"><span class="hs-identifier hs-var">DwarfAbbrev</span></a></span></span><span>
</span><span id="line-77"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DwAbbrNull"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrNull"><span class="hs-identifier hs-var">DwAbbrNull</span></a></span></span><span>          </span><span class="hs-comment">-- ^ Pseudo, used for marking the end of lists</span><span>
</span><span id="line-78"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwAbbrCompileUnit"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrCompileUnit"><span class="hs-identifier hs-var">DwAbbrCompileUnit</span></a></span></span><span>
</span><span id="line-79"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwAbbrSubprogram"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrSubprogram"><span class="hs-identifier hs-var">DwAbbrSubprogram</span></a></span></span><span>
</span><span id="line-80"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwAbbrSubprogramWithParent"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrSubprogramWithParent"><span class="hs-identifier hs-var">DwAbbrSubprogramWithParent</span></a></span></span><span>
</span><span id="line-81"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwAbbrBlockWithoutCode"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrBlockWithoutCode"><span class="hs-identifier hs-var">DwAbbrBlockWithoutCode</span></a></span></span><span>
</span><span id="line-82"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwAbbrBlock"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrBlock"><span class="hs-identifier hs-var">DwAbbrBlock</span></a></span></span><span>
</span><span id="line-83"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DwAbbrGhcSrcNote"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrGhcSrcNote"><span class="hs-identifier hs-var">DwAbbrGhcSrcNote</span></a></span></span><span>
</span><span id="line-84"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621681042951"><span id="local-6989586621681042953"><span class="annot"><span class="annottext">DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool
(DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool)
-&gt; (DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool) -&gt; Eq DwarfAbbrev
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool
$c/= :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool
== :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool
$c== :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681042915"><span id="local-6989586621681042917"><span id="local-6989586621681042921"><span id="local-6989586621681042925"><span id="local-6989586621681042927"><span id="local-6989586621681042936"><span id="local-6989586621681042942"><span id="local-6989586621681042948"><span class="annot"><span class="annottext">Int -&gt; DwarfAbbrev
DwarfAbbrev -&gt; Int
DwarfAbbrev -&gt; [DwarfAbbrev]
DwarfAbbrev -&gt; DwarfAbbrev
DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
DwarfAbbrev -&gt; DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
(DwarfAbbrev -&gt; DwarfAbbrev)
-&gt; (DwarfAbbrev -&gt; DwarfAbbrev)
-&gt; (Int -&gt; DwarfAbbrev)
-&gt; (DwarfAbbrev -&gt; Int)
-&gt; (DwarfAbbrev -&gt; [DwarfAbbrev])
-&gt; (DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev])
-&gt; (DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev])
-&gt; (DwarfAbbrev -&gt; DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev])
-&gt; Enum DwarfAbbrev
forall a.
(a -&gt; a)
-&gt; (a -&gt; a)
-&gt; (Int -&gt; a)
-&gt; (a -&gt; Int)
-&gt; (a -&gt; [a])
-&gt; (a -&gt; a -&gt; [a])
-&gt; (a -&gt; a -&gt; [a])
-&gt; (a -&gt; a -&gt; a -&gt; [a])
-&gt; Enum a
enumFromThenTo :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
$cenumFromThenTo :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
enumFromTo :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
$cenumFromTo :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
enumFromThen :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
$cenumFromThen :: DwarfAbbrev -&gt; DwarfAbbrev -&gt; [DwarfAbbrev]
enumFrom :: DwarfAbbrev -&gt; [DwarfAbbrev]
$cenumFrom :: DwarfAbbrev -&gt; [DwarfAbbrev]
fromEnum :: DwarfAbbrev -&gt; Int
$cfromEnum :: DwarfAbbrev -&gt; Int
toEnum :: Int -&gt; DwarfAbbrev
$ctoEnum :: Int -&gt; DwarfAbbrev
pred :: DwarfAbbrev -&gt; DwarfAbbrev
$cpred :: DwarfAbbrev -&gt; DwarfAbbrev
succ :: DwarfAbbrev -&gt; DwarfAbbrev
$csucc :: DwarfAbbrev -&gt; DwarfAbbrev
</span><a href="../../base/src/GHC.Enum.html#Enum"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Enum</span></a></span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-85"></span><span>
</span><span id="line-86"></span><span class="hs-comment">-- | Generate assembly for the given abbreviation code</span><span>
</span><span id="line-87"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-type">pprAbbrev</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfAbbrev"><span class="hs-identifier hs-type">DwarfAbbrev</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-88"></span><span id="pprAbbrev"><span class="annot"><span class="annottext">pprAbbrev :: DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var hs-var">pprAbbrev</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">(Word -&gt; SDoc) -&gt; (DwarfAbbrev -&gt; Word) -&gt; DwarfAbbrev -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Word) -&gt; (DwarfAbbrev -&gt; Int) -&gt; DwarfAbbrev -&gt; Word
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Int
forall a. Enum a =&gt; a -&gt; Int
</span><a href="../../base/src/GHC.Enum.html#fromEnum"><span class="hs-identifier hs-var">fromEnum</span></a></span><span>
</span><span id="line-89"></span><span>
</span><span id="line-90"></span><span class="hs-comment">-- | Abbreviation declaration. This explains the binary encoding we</span><span>
</span><span id="line-91"></span><span class="hs-comment">-- use for representing 'DwarfInfo'. Be aware that this must be updated</span><span>
</span><span id="line-92"></span><span class="hs-comment">-- along with 'pprDwarfInfo'.</span><span>
</span><span id="line-93"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrevDecls"><span class="hs-identifier hs-type">pprAbbrevDecls</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-94"></span><span id="pprAbbrevDecls"><span class="annot"><span class="annottext">pprAbbrevDecls :: Platform -&gt; Bool -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrevDecls"><span class="hs-identifier hs-var hs-var">pprAbbrevDecls</span></a></span></span><span> </span><span id="local-6989586621681042910"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042910"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042909"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042909"><span class="hs-identifier hs-var">haveDebugLine</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-95"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681042906"><span class="annot"><span class="annottext">mkAbbrev :: DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var hs-var">mkAbbrev</span></a></span></span><span> </span><span id="local-6989586621681042905"><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="#local-6989586621681042905"><span class="hs-identifier hs-var">abbr</span></a></span></span><span> </span><span id="local-6989586621681042904"><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042904"><span class="hs-identifier hs-var">tag</span></a></span></span><span> </span><span id="local-6989586621681042903"><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042903"><span class="hs-identifier hs-var">chld</span></a></span></span><span> </span><span id="local-6989586621681042902"><span class="annot"><span class="annottext">[(Word, Word)]
</span><a href="#local-6989586621681042902"><span class="hs-identifier hs-var">flds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-96"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681042901"><span class="annot"><span class="annottext">fld :: (Word, Word) -&gt; SDoc
</span><a href="#local-6989586621681042901"><span class="hs-identifier hs-var hs-var">fld</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681042900"><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042900"><span class="hs-identifier hs-var">tag</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681042899"><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042899"><span class="hs-identifier hs-var">form</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042900"><span class="hs-identifier hs-var">tag</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042899"><span class="hs-identifier hs-var">form</span></a></span><span>
</span><span id="line-97"></span><span>        </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="#local-6989586621681042905"><span class="hs-identifier hs-var">abbr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042904"><span class="hs-identifier hs-var">tag</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042903"><span class="hs-identifier hs-var">chld</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-98"></span><span>           </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((Word, Word) -&gt; SDoc) -&gt; [(Word, Word)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(Word, Word) -&gt; SDoc
</span><a href="#local-6989586621681042901"><span class="hs-identifier hs-var">fld</span></a></span><span> </span><span class="annot"><span class="annottext">[(Word, Word)]
</span><a href="#local-6989586621681042902"><span class="hs-identifier hs-var">flds</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-99"></span><span>      </span><span class="hs-comment">-- These are shared between DwAbbrSubprogram and</span><span>
</span><span id="line-100"></span><span>      </span><span class="hs-comment">-- DwAbbrSubprogramWithParent</span><span>
</span><span id="line-101"></span><span>      </span><span id="local-6989586621681042896"><span class="annot"><span class="annottext">subprogramAttrs :: [(Word, Word)]
</span><a href="#local-6989586621681042896"><span class="hs-identifier hs-var hs-var">subprogramAttrs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-102"></span><span>           </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_name"><span class="hs-identifier hs-var">dW_AT_name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-103"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_MIPS_linkage_name"><span class="hs-identifier hs-var">dW_AT_MIPS_linkage_name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-104"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_external"><span class="hs-identifier hs-var">dW_AT_external</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_flag"><span class="hs-identifier hs-var">dW_FORM_flag</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-105"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_low_pc"><span class="hs-identifier hs-var">dW_AT_low_pc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_addr"><span class="hs-identifier hs-var">dW_FORM_addr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-106"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_high_pc"><span class="hs-identifier hs-var">dW_AT_high_pc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_addr"><span class="hs-identifier hs-var">dW_FORM_addr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-107"></span><span>           </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_frame_base"><span class="hs-identifier hs-var">dW_AT_frame_base</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_block1"><span class="hs-identifier hs-var">dW_FORM_block1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span>           </span><span class="hs-special">]</span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfAbbrevSection"><span class="hs-identifier hs-var">dwarfAbbrevSection</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042910"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-110"></span><span>     </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfAbbrevLabel"><span class="hs-identifier hs-var">dwarfAbbrevLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-111"></span><span>     </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var">mkAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrCompileUnit"><span class="hs-identifier hs-var">DwAbbrCompileUnit</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_TAG_compile_unit"><span class="hs-identifier hs-var">dW_TAG_compile_unit</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CHILDREN_yes"><span class="hs-identifier hs-var">dW_CHILDREN_yes</span></a></span><span>
</span><span id="line-112"></span><span>       </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_name"><span class="hs-identifier hs-var">dW_AT_name</span></a></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-113"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_producer"><span class="hs-identifier hs-var">dW_AT_producer</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-114"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_language"><span class="hs-identifier hs-var">dW_AT_language</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_data4"><span class="hs-identifier hs-var">dW_FORM_data4</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-115"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_comp_dir"><span class="hs-identifier hs-var">dW_AT_comp_dir</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-116"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_use_UTF8"><span class="hs-identifier hs-var">dW_AT_use_UTF8</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_flag_present"><span class="hs-identifier hs-var">dW_FORM_flag_present</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- not represented in body</span><span>
</span><span id="line-117"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_low_pc"><span class="hs-identifier hs-var">dW_AT_low_pc</span></a></span><span class="hs-special">,</span><span>   </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_addr"><span class="hs-identifier hs-var">dW_FORM_addr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-118"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_high_pc"><span class="hs-identifier hs-var">dW_AT_high_pc</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_addr"><span class="hs-identifier hs-var">dW_FORM_addr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-119"></span><span>       </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">[(Word, Word)] -&gt; [(Word, Word)] -&gt; [(Word, Word)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span>
</span><span id="line-120"></span><span>       </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042909"><span class="hs-identifier hs-var">haveDebugLine</span></a></span><span>
</span><span id="line-121"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_stmt_list"><span class="hs-identifier hs-var">dW_AT_stmt_list</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_data4"><span class="hs-identifier hs-var">dW_FORM_data4</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-122"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-123"></span><span>     </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var">mkAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrSubprogram"><span class="hs-identifier hs-var">DwAbbrSubprogram</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_TAG_subprogram"><span class="hs-identifier hs-var">dW_TAG_subprogram</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CHILDREN_yes"><span class="hs-identifier hs-var">dW_CHILDREN_yes</span></a></span><span>
</span><span id="line-124"></span><span>       </span><span class="annot"><span class="annottext">[(Word, Word)]
</span><a href="#local-6989586621681042896"><span class="hs-identifier hs-var">subprogramAttrs</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-125"></span><span>     </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var">mkAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrSubprogramWithParent"><span class="hs-identifier hs-var">DwAbbrSubprogramWithParent</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_TAG_subprogram"><span class="hs-identifier hs-var">dW_TAG_subprogram</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CHILDREN_yes"><span class="hs-identifier hs-var">dW_CHILDREN_yes</span></a></span><span>
</span><span id="line-126"></span><span>       </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[(Word, Word)]
</span><a href="#local-6989586621681042896"><span class="hs-identifier hs-var">subprogramAttrs</span></a></span><span> </span><span class="annot"><span class="annottext">[(Word, Word)] -&gt; [(Word, Word)] -&gt; [(Word, Word)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_ghc_tick_parent"><span class="hs-identifier hs-var">dW_AT_ghc_tick_parent</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_ref_addr"><span class="hs-identifier hs-var">dW_FORM_ref_addr</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-127"></span><span>     </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var">mkAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrBlockWithoutCode"><span class="hs-identifier hs-var">DwAbbrBlockWithoutCode</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_TAG_lexical_block"><span class="hs-identifier hs-var">dW_TAG_lexical_block</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CHILDREN_yes"><span class="hs-identifier hs-var">dW_CHILDREN_yes</span></a></span><span>
</span><span id="line-128"></span><span>       </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_name"><span class="hs-identifier hs-var">dW_AT_name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-129"></span><span>       </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-130"></span><span>     </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var">mkAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrBlock"><span class="hs-identifier hs-var">DwAbbrBlock</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_TAG_lexical_block"><span class="hs-identifier hs-var">dW_TAG_lexical_block</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CHILDREN_yes"><span class="hs-identifier hs-var">dW_CHILDREN_yes</span></a></span><span>
</span><span id="line-131"></span><span>       </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_name"><span class="hs-identifier hs-var">dW_AT_name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-132"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_low_pc"><span class="hs-identifier hs-var">dW_AT_low_pc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_addr"><span class="hs-identifier hs-var">dW_FORM_addr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-133"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_high_pc"><span class="hs-identifier hs-var">dW_AT_high_pc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_addr"><span class="hs-identifier hs-var">dW_FORM_addr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-134"></span><span>       </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-135"></span><span>     </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; Word -&gt; Word8 -&gt; [(Word, Word)] -&gt; SDoc
</span><a href="#local-6989586621681042906"><span class="hs-identifier hs-var">mkAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrGhcSrcNote"><span class="hs-identifier hs-var">DwAbbrGhcSrcNote</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_TAG_ghc_src_note"><span class="hs-identifier hs-var">dW_TAG_ghc_src_note</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CHILDREN_no"><span class="hs-identifier hs-var">dW_CHILDREN_no</span></a></span><span>
</span><span id="line-136"></span><span>       </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_ghc_span_file"><span class="hs-identifier hs-var">dW_AT_ghc_span_file</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_string"><span class="hs-identifier hs-var">dW_FORM_string</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_ghc_span_start_line"><span class="hs-identifier hs-var">dW_AT_ghc_span_start_line</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_data4"><span class="hs-identifier hs-var">dW_FORM_data4</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-138"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_ghc_span_start_col"><span class="hs-identifier hs-var">dW_AT_ghc_span_start_col</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_data2"><span class="hs-identifier hs-var">dW_FORM_data2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-139"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_ghc_span_end_line"><span class="hs-identifier hs-var">dW_AT_ghc_span_end_line</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_data4"><span class="hs-identifier hs-var">dW_FORM_data4</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-140"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_AT_ghc_span_end_col"><span class="hs-identifier hs-var">dW_AT_ghc_span_end_col</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_FORM_data2"><span class="hs-identifier hs-var">dW_FORM_data2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-141"></span><span>       </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-142"></span><span>     </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-143"></span><span>
</span><span id="line-144"></span><span class="hs-comment">-- | Generate assembly for DWARF data</span><span>
</span><span id="line-145"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfo"><span class="hs-identifier hs-type">pprDwarfInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier hs-type">DwarfInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-146"></span><span id="pprDwarfInfo"><span class="annot"><span class="annottext">pprDwarfInfo :: Platform -&gt; Bool -&gt; DwarfInfo -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfo"><span class="hs-identifier hs-var hs-var">pprDwarfInfo</span></a></span></span><span> </span><span id="local-6989586621681042859"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042859"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042858"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042858"><span class="hs-identifier hs-var">haveSrc</span></a></span></span><span> </span><span id="local-6989586621681042857"><span class="annot"><span class="annottext">DwarfInfo
</span><a href="#local-6989586621681042857"><span class="hs-identifier hs-var">d</span></a></span></span><span>
</span><span id="line-147"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">DwarfInfo
</span><a href="#local-6989586621681042857"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-148"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfCompileUnit"><span class="hs-identifier hs-type">DwarfCompileUnit</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042856"><span class="hs-identifier hs-var">hasChildren</span></a></span><span>
</span><span id="line-149"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfSubprogram"><span class="hs-identifier hs-type">DwarfSubprogram</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042856"><span class="hs-identifier hs-var">hasChildren</span></a></span><span>
</span><span id="line-150"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfBlock"><span class="hs-identifier hs-type">DwarfBlock</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042856"><span class="hs-identifier hs-var">hasChildren</span></a></span><span>
</span><span id="line-151"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfSrcNote"><span class="hs-identifier hs-type">DwarfSrcNote</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042855"><span class="hs-identifier hs-var">noChildren</span></a></span><span>
</span><span id="line-152"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-153"></span><span>    </span><span id="local-6989586621681042856"><span class="annot"><span class="annottext">hasChildren :: SDoc
</span><a href="#local-6989586621681042856"><span class="hs-identifier hs-var hs-var">hasChildren</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-154"></span><span>        </span><span class="annot"><span class="annottext">Platform -&gt; Bool -&gt; DwarfInfo -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var">pprDwarfInfoOpen</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042859"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042858"><span class="hs-identifier hs-var">haveSrc</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfInfo
</span><a href="#local-6989586621681042857"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-155"></span><span>        </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(DwarfInfo -&gt; SDoc) -&gt; [DwarfInfo] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool -&gt; DwarfInfo -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfo"><span class="hs-identifier hs-var">pprDwarfInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042859"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042858"><span class="hs-identifier hs-var">haveSrc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DwarfInfo -&gt; [DwarfInfo]
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwChildren"><span class="hs-identifier hs-var hs-var">dwChildren</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfInfo
</span><a href="#local-6989586621681042857"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-156"></span><span>        </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoClose"><span class="hs-identifier hs-var">pprDwarfInfoClose</span></a></span><span>
</span><span id="line-157"></span><span>    </span><span id="local-6989586621681042855"><span class="annot"><span class="annottext">noChildren :: SDoc
</span><a href="#local-6989586621681042855"><span class="hs-identifier hs-var hs-var">noChildren</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool -&gt; DwarfInfo -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var">pprDwarfInfoOpen</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042859"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042858"><span class="hs-identifier hs-var">haveSrc</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfInfo
</span><a href="#local-6989586621681042857"><span class="hs-identifier hs-var">d</span></a></span><span>
</span><span id="line-158"></span><span>
</span><span id="line-159"></span><span class="hs-comment">-- | Prints assembler data corresponding to DWARF info records. Note</span><span>
</span><span id="line-160"></span><span class="hs-comment">-- that the binary format of this is parameterized in @abbrevDecls@ and</span><span>
</span><span id="line-161"></span><span class="hs-comment">-- has to be kept in synch.</span><span>
</span><span id="line-162"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-type">pprDwarfInfoOpen</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfInfo"><span class="hs-identifier hs-type">DwarfInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-163"></span><span id="pprDwarfInfoOpen"><span class="annot"><span class="annottext">pprDwarfInfoOpen :: Platform -&gt; Bool -&gt; DwarfInfo -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var hs-var">pprDwarfInfoOpen</span></a></span></span><span> </span><span id="local-6989586621681042852"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042852"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042851"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042851"><span class="hs-identifier hs-var">haveSrc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfCompileUnit"><span class="hs-identifier hs-type">DwarfCompileUnit</span></a></span><span> </span><span class="annot"><span class="annottext">[DwarfInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681042850"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042850"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681042849"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042849"><span class="hs-identifier hs-var">producer</span></a></span></span><span> </span><span id="local-6989586621681042848"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042848"><span class="hs-identifier hs-var">compDir</span></a></span></span><span> </span><span id="local-6989586621681042847"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042847"><span class="hs-identifier hs-var">lowLabel</span></a></span></span><span>
</span><span id="line-164"></span><span>                                           </span><span id="local-6989586621681042846"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042846"><span class="hs-identifier hs-var">highLabel</span></a></span></span><span> </span><span id="local-6989586621681042845"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681042845"><span class="hs-identifier hs-var">lineLbl</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-165"></span><span>  </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrCompileUnit"><span class="hs-identifier hs-var">DwAbbrCompileUnit</span></a></span><span>
</span><span id="line-166"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042850"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-167"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042849"><span class="hs-identifier hs-var">producer</span></a></span><span>
</span><span id="line-168"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4"><span class="hs-identifier hs-var">pprData4</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_LANG_Haskell"><span class="hs-identifier hs-var">dW_LANG_Haskell</span></a></span><span>
</span><span id="line-169"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042848"><span class="hs-identifier hs-var">compDir</span></a></span><span>
</span><span id="line-170"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042852"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042847"><span class="hs-identifier hs-var">lowLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-171"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042852"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042846"><span class="hs-identifier hs-var">highLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-172"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042851"><span class="hs-identifier hs-var">haveSrc</span></a></span><span>
</span><span id="line-173"></span><span>     </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#sectionOffset"><span class="hs-identifier hs-var">sectionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042852"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681042845"><span class="hs-identifier hs-var">lineLbl</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfLineLabel"><span class="hs-identifier hs-var">dwarfLineLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span>     </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-175"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var">pprDwarfInfoOpen</span></a></span><span> </span><span id="local-6989586621681042838"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042838"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfSubprogram"><span class="hs-identifier hs-type">DwarfSubprogram</span></a></span><span> </span><span class="annot"><span class="annottext">[DwarfInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681042837"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042837"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681042836"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042836"><span class="hs-keyword hs-var">label</span></a></span></span><span>
</span><span id="line-176"></span><span>                                    </span><span id="local-6989586621681042835"><span class="annot"><span class="annottext">Maybe CLabel
</span><a href="#local-6989586621681042835"><span class="hs-identifier hs-var">parent</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(DynFlags -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-var">sdocWithDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">((DynFlags -&gt; SDoc) -&gt; SDoc) -&gt; (DynFlags -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681042833"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681042833"><span class="hs-identifier hs-var">df</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-177"></span><span>  </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempDieLabel"><span class="hs-identifier hs-var">mkAsmTempDieLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042836"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-178"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="#local-6989586621681042831"><span class="hs-identifier hs-var">abbrev</span></a></span><span>
</span><span id="line-179"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042837"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-180"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681042833"><span class="hs-identifier hs-var">df</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkCodeStyle"><span class="hs-identifier hs-var">mkCodeStyle</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><a href="GHC.Utils.Outputable.html#CStyle"><span class="hs-identifier hs-var">CStyle</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042836"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-181"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFlag"><span class="hs-identifier hs-var">pprFlag</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#externallyVisibleCLabel"><span class="hs-identifier hs-var">externallyVisibleCLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042836"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-182"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042838"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042836"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-183"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042838"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">(CLabel -&gt; SDoc) -&gt; CLabel -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042836"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-184"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">1</span></span><span>
</span><span id="line-185"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_call_frame_cfa"><span class="hs-identifier hs-var">dW_OP_call_frame_cfa</span></a></span><span>
</span><span id="line-186"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042822"><span class="hs-identifier hs-var">parentValue</span></a></span><span>
</span><span id="line-187"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-188"></span><span>    </span><span id="local-6989586621681042831"><span class="annot"><span class="annottext">abbrev :: DwarfAbbrev
</span><a href="#local-6989586621681042831"><span class="hs-identifier hs-var hs-var">abbrev</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe CLabel
</span><a href="#local-6989586621681042835"><span class="hs-identifier hs-var">parent</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="annot"><span class="annottext">Maybe CLabel
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrSubprogram"><span class="hs-identifier hs-var">DwAbbrSubprogram</span></a></span><span>
</span><span id="line-189"></span><span>                            </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrSubprogramWithParent"><span class="hs-identifier hs-var">DwAbbrSubprogramWithParent</span></a></span><span>
</span><span id="line-190"></span><span>    </span><span id="local-6989586621681042822"><span class="annot"><span class="annottext">parentValue :: SDoc
</span><a href="#local-6989586621681042822"><span class="hs-identifier hs-var hs-var">parentValue</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; (CLabel -&gt; SDoc) -&gt; Maybe CLabel -&gt; SDoc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="#local-6989586621681042819"><span class="hs-identifier hs-var">pprParentDie</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe CLabel
</span><a href="#local-6989586621681042835"><span class="hs-identifier hs-var">parent</span></a></span><span>
</span><span id="line-191"></span><span>    </span><span id="local-6989586621681042819"><span class="annot"><span class="annottext">pprParentDie :: a -&gt; SDoc
</span><a href="#local-6989586621681042819"><span class="hs-identifier hs-var hs-var">pprParentDie</span></a></span></span><span> </span><span id="local-6989586621681042816"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681042816"><span class="hs-identifier hs-var">sym</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#sectionOffset"><span class="hs-identifier hs-var">sectionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042838"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681042816"><span class="hs-identifier hs-var">sym</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfInfoLabel"><span class="hs-identifier hs-var">dwarfInfoLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-192"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var">pprDwarfInfoOpen</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfBlock"><span class="hs-identifier hs-type">DwarfBlock</span></a></span><span> </span><span class="annot"><span class="annottext">[DwarfInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681042814"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042814"><span class="hs-keyword hs-var">label</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe CLabel
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(DynFlags -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-var">sdocWithDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">((DynFlags -&gt; SDoc) -&gt; SDoc) -&gt; (DynFlags -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681042813"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681042813"><span class="hs-identifier hs-var">df</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-193"></span><span>  </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempDieLabel"><span class="hs-identifier hs-var">mkAsmTempDieLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042814"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-194"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrBlockWithoutCode"><span class="hs-identifier hs-var">DwAbbrBlockWithoutCode</span></a></span><span>
</span><span id="line-195"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681042813"><span class="hs-identifier hs-var">df</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkCodeStyle"><span class="hs-identifier hs-var">mkCodeStyle</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><a href="GHC.Utils.Outputable.html#CStyle"><span class="hs-identifier hs-var">CStyle</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042814"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-196"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var">pprDwarfInfoOpen</span></a></span><span> </span><span id="local-6989586621681042812"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042812"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfBlock"><span class="hs-identifier hs-type">DwarfBlock</span></a></span><span> </span><span class="annot"><span class="annottext">[DwarfInfo]
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621681042811"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042811"><span class="hs-keyword hs-var">label</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681042810"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042810"><span class="hs-identifier hs-var">marker</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(DynFlags -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-var">sdocWithDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">((DynFlags -&gt; SDoc) -&gt; SDoc) -&gt; (DynFlags -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681042809"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681042809"><span class="hs-identifier hs-var">df</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-197"></span><span>  </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempDieLabel"><span class="hs-identifier hs-var">mkAsmTempDieLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042811"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-198"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrBlock"><span class="hs-identifier hs-var">DwAbbrBlock</span></a></span><span>
</span><span id="line-199"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDocContext -&gt; SDoc -&gt; String
</span><a href="GHC.Utils.Outputable.html#renderWithStyle"><span class="hs-identifier hs-var">renderWithStyle</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; PprStyle -&gt; SDocContext
</span><a href="GHC.Driver.Session.html#initSDocContext"><span class="hs-identifier hs-var">initSDocContext</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681042809"><span class="hs-identifier hs-var">df</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CodeStyle -&gt; PprStyle
</span><a href="GHC.Utils.Outputable.html#mkCodeStyle"><span class="hs-identifier hs-var">mkCodeStyle</span></a></span><span> </span><span class="annot"><span class="annottext">CodeStyle
</span><a href="GHC.Utils.Outputable.html#CStyle"><span class="hs-identifier hs-var">CStyle</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042811"><span class="hs-keyword hs-var">label</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-200"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042812"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042810"><span class="hs-identifier hs-var">marker</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-201"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042812"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">(CLabel -&gt; SDoc) -&gt; CLabel -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042810"><span class="hs-identifier hs-var">marker</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-202"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoOpen"><span class="hs-identifier hs-var">pprDwarfInfoOpen</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfSrcNote"><span class="hs-identifier hs-type">DwarfSrcNote</span></a></span><span> </span><span id="local-6989586621681042808"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681042808"><span class="hs-identifier hs-var">ss</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-203"></span><span>  </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrGhcSrcNote"><span class="hs-identifier hs-var">DwAbbrGhcSrcNote</span></a></span><span>
</span><span id="line-204"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString%27"><span class="hs-identifier hs-var">pprString'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; SDoc) -&gt; FastString -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681042808"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-205"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4"><span class="hs-identifier hs-var">pprData4</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Word) -&gt; Int -&gt; Word
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681042808"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-206"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word16 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprHalf"><span class="hs-identifier hs-var">pprHalf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word16
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Word16) -&gt; Int -&gt; Word16
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681042808"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-207"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4"><span class="hs-identifier hs-var">pprData4</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Word) -&gt; Int -&gt; Word
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681042808"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-208"></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word16 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprHalf"><span class="hs-identifier hs-var">pprHalf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word16
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Word16) -&gt; Int -&gt; Word16
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621681042808"><span class="hs-identifier hs-var">ss</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-209"></span><span>
</span><span id="line-210"></span><span class="hs-comment">-- | Close a DWARF info record with children</span><span>
</span><span id="line-211"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoClose"><span class="hs-identifier hs-type">pprDwarfInfoClose</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-212"></span><span id="pprDwarfInfoClose"><span class="annot"><span class="annottext">pprDwarfInfoClose :: SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfInfoClose"><span class="hs-identifier hs-var hs-var">pprDwarfInfoClose</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprAbbrev"><span class="hs-identifier hs-var">pprAbbrev</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfAbbrev
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#DwAbbrNull"><span class="hs-identifier hs-var">DwAbbrNull</span></a></span><span>
</span><span id="line-213"></span><span>
</span><span id="line-214"></span><span class="hs-comment">-- | A DWARF address range. This is used by the debugger to quickly locate</span><span>
</span><span id="line-215"></span><span class="hs-comment">-- which compilation unit a given address belongs to. This type assumes</span><span>
</span><span id="line-216"></span><span class="hs-comment">-- a non-segmented address-space.</span><span>
</span><span id="line-217"></span><span class="hs-keyword">data</span><span> </span><span id="DwarfARange"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfARange"><span class="hs-identifier hs-var">DwarfARange</span></a></span></span><span>
</span><span id="line-218"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DwarfARange"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfARange"><span class="hs-identifier hs-var">DwarfARange</span></a></span></span><span>
</span><span id="line-219"></span><span>    </span><span class="hs-special">{</span><span> </span><span id="dwArngStartLabel"><span class="annot"><span class="annottext">DwarfARange -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwArngStartLabel"><span class="hs-identifier hs-var hs-var">dwArngStartLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-220"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="dwArngEndLabel"><span class="annot"><span class="annottext">DwarfARange -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwArngEndLabel"><span class="hs-identifier hs-var hs-var">dwArngEndLabel</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-221"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-222"></span><span>
</span><span id="line-223"></span><span class="hs-comment">-- | Print assembler directives corresponding to a DWARF @.debug_aranges@</span><span>
</span><span id="line-224"></span><span class="hs-comment">-- address table entry.</span><span>
</span><span id="line-225"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfARanges"><span class="hs-identifier hs-type">pprDwarfARanges</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfARange"><span class="hs-identifier hs-type">DwarfARange</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-226"></span><span id="pprDwarfARanges"><span class="annot"><span class="annottext">pprDwarfARanges :: Platform -&gt; [DwarfARange] -&gt; Unique -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfARanges"><span class="hs-identifier hs-var hs-var">pprDwarfARanges</span></a></span></span><span> </span><span id="local-6989586621681042797"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042797"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042796"><span class="annot"><span class="annottext">[DwarfARange]
</span><a href="#local-6989586621681042796"><span class="hs-identifier hs-var">arngs</span></a></span></span><span> </span><span id="local-6989586621681042795"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681042795"><span class="hs-identifier hs-var">unitU</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-227"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681042794"><span class="annot"><span class="annottext">wordSize :: Int
</span><a href="#local-6989586621681042794"><span class="hs-identifier hs-var hs-var">wordSize</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Int
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSizeInBytes"><span class="hs-identifier hs-var">platformWordSizeInBytes</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042797"><span class="hs-identifier hs-var">platform</span></a></span><span>
</span><span id="line-228"></span><span>      </span><span id="local-6989586621681042792"><span class="annot"><span class="annottext">paddingSize :: Int
</span><a href="#local-6989586621681042792"><span class="hs-identifier hs-var hs-var">paddingSize</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-229"></span><span>      </span><span class="hs-comment">-- header is 12 bytes long.</span><span>
</span><span id="line-230"></span><span>      </span><span class="hs-comment">-- entry is 8 bytes (32-bit platform) or 16 bytes (64-bit platform).</span><span>
</span><span id="line-231"></span><span>      </span><span class="hs-comment">-- pad such that first entry begins at multiple of entry size.</span><span>
</span><span id="line-232"></span><span>      </span><span id="local-6989586621681042790"><span class="annot"><span class="annottext">pad :: Int -&gt; SDoc
</span><a href="#local-6989586621681042790"><span class="hs-identifier hs-var hs-var">pad</span></a></span></span><span> </span><span id="local-6989586621681042789"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042789"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; [SDoc]
forall a. Int -&gt; a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#replicate"><span class="hs-identifier hs-var">replicate</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042789"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; [SDoc]) -&gt; SDoc -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-233"></span><span>      </span><span class="hs-comment">-- Fix for #17428</span><span>
</span><span id="line-234"></span><span>      </span><span id="local-6989586621681042777"><span class="annot"><span class="annottext">initialLength :: Int
</span><a href="#local-6989586621681042777"><span class="hs-identifier hs-var hs-var">initialLength</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042792"><span class="hs-identifier hs-var">paddingSize</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">[DwarfARange] -&gt; Int
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
</span><a href="../../base/src/Data.Foldable.html#length"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[DwarfARange]
</span><a href="#local-6989586621681042796"><span class="hs-identifier hs-var">arngs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2A"><span class="hs-operator hs-var">*</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2A"><span class="hs-operator hs-var">*</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042794"><span class="hs-identifier hs-var">wordSize</span></a></span><span>
</span><span id="line-235"></span><span>  </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwWord"><span class="hs-identifier hs-var">pprDwWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042777"><span class="hs-identifier hs-var">initialLength</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-236"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word16 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprHalf"><span class="hs-identifier hs-var">pprHalf</span></a></span><span> </span><span class="annot"><span class="annottext">Word16
</span><span class="hs-number">2</span></span><span>
</span><span id="line-237"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#sectionOffset"><span class="hs-identifier hs-var">sectionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042797"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">(CLabel -&gt; SDoc) -&gt; CLabel -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; CLabel
forall a. Uniquable a =&gt; a -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempLabel"><span class="hs-identifier hs-var">mkAsmTempLabel</span></a></span><span> </span><span class="annot"><span class="annottext">(Unique -&gt; CLabel) -&gt; Unique -&gt; CLabel
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681042795"><span class="hs-identifier hs-var">unitU</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-238"></span><span>                               </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfInfoLabel"><span class="hs-identifier hs-var">dwarfInfoLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-239"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042794"><span class="hs-identifier hs-var">wordSize</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-240"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-241"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="#local-6989586621681042790"><span class="hs-identifier hs-var">pad</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042792"><span class="hs-identifier hs-var">paddingSize</span></a></span><span>
</span><span id="line-242"></span><span>     </span><span class="hs-comment">-- body</span><span>
</span><span id="line-243"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(DwarfARange -&gt; SDoc) -&gt; [DwarfARange] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; DwarfARange -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfARange"><span class="hs-identifier hs-var">pprDwarfARange</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042797"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[DwarfARange]
</span><a href="#local-6989586621681042796"><span class="hs-identifier hs-var">arngs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-244"></span><span>     </span><span class="hs-comment">-- terminus</span><span>
</span><span id="line-245"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042797"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span class="hs-special">)</span><span>
</span><span id="line-246"></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042797"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span class="hs-special">)</span><span>
</span><span id="line-247"></span><span>
</span><span id="line-248"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfARange"><span class="hs-identifier hs-type">pprDwarfARange</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfARange"><span class="hs-identifier hs-type">DwarfARange</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-249"></span><span id="pprDwarfARange"><span class="annot"><span class="annottext">pprDwarfARange :: Platform -&gt; DwarfARange -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfARange"><span class="hs-identifier hs-var hs-var">pprDwarfARange</span></a></span></span><span> </span><span id="local-6989586621681042770"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042770"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042769"><span class="annot"><span class="annottext">DwarfARange
</span><a href="#local-6989586621681042769"><span class="hs-identifier hs-var">arng</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042770"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">(CLabel -&gt; SDoc) -&gt; CLabel -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfARange -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwArngStartLabel"><span class="hs-identifier hs-var hs-var">dwArngStartLabel</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfARange
</span><a href="#local-6989586621681042769"><span class="hs-identifier hs-var">arng</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042770"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042768"><span class="hs-identifier hs-var">length</span></a></span><span>
</span><span id="line-250"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-251"></span><span>    </span><span id="local-6989586621681042768"><span class="annot"><span class="annottext">length :: SDoc
</span><a href="#local-6989586621681042768"><span class="hs-identifier hs-var hs-var">length</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DwarfARange -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwArngEndLabel"><span class="hs-identifier hs-var hs-var">dwArngEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfARange
</span><a href="#local-6989586621681042769"><span class="hs-identifier hs-var">arng</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-252"></span><span>             </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DwarfARange -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwArngStartLabel"><span class="hs-identifier hs-var hs-var">dwArngStartLabel</span></a></span><span> </span><span class="annot"><span class="annottext">DwarfARange
</span><a href="#local-6989586621681042769"><span class="hs-identifier hs-var">arng</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-253"></span><span>
</span><span id="line-254"></span><span class="hs-comment">-- | Information about unwind instructions for a procedure. This</span><span>
</span><span id="line-255"></span><span class="hs-comment">-- corresponds to a &quot;Common Information Entry&quot; (CIE) in DWARF.</span><span>
</span><span id="line-256"></span><span class="hs-keyword">data</span><span> </span><span id="DwarfFrame"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrame"><span class="hs-identifier hs-var">DwarfFrame</span></a></span></span><span>
</span><span id="line-257"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DwarfFrame"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrame"><span class="hs-identifier hs-var">DwarfFrame</span></a></span></span><span>
</span><span id="line-258"></span><span>    </span><span class="hs-special">{</span><span> </span><span id="dwCieLabel"><span class="annot"><span class="annottext">DwarfFrame -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCieLabel"><span class="hs-identifier hs-var hs-var">dwCieLabel</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-259"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="dwCieInit"><span class="annot"><span class="annottext">DwarfFrame -&gt; UnwindTable
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCieInit"><span class="hs-identifier hs-var hs-var">dwCieInit</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindTable"><span class="hs-identifier hs-type">UnwindTable</span></a></span><span>
</span><span id="line-260"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="dwCieProcs"><span class="annot"><span class="annottext">DwarfFrame -&gt; [DwarfFrameProc]
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCieProcs"><span class="hs-identifier hs-var hs-var">dwCieProcs</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameProc"><span class="hs-identifier hs-type">DwarfFrameProc</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-261"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-262"></span><span>
</span><span id="line-263"></span><span class="hs-comment">-- | Unwind instructions for an individual procedure. Corresponds to a</span><span>
</span><span id="line-264"></span><span class="hs-comment">-- &quot;Frame Description Entry&quot; (FDE) in DWARF.</span><span>
</span><span id="line-265"></span><span class="hs-keyword">data</span><span> </span><span id="DwarfFrameProc"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameProc"><span class="hs-identifier hs-var">DwarfFrameProc</span></a></span></span><span>
</span><span id="line-266"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DwarfFrameProc"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameProc"><span class="hs-identifier hs-var">DwarfFrameProc</span></a></span></span><span>
</span><span id="line-267"></span><span>    </span><span class="hs-special">{</span><span> </span><span id="dwFdeProc"><span class="annot"><span class="annottext">DwarfFrameProc -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwFdeProc"><span class="hs-identifier hs-var hs-var">dwFdeProc</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span>
</span><span id="line-268"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="dwFdeHasInfo"><span class="annot"><span class="annottext">DwarfFrameProc -&gt; Bool
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwFdeHasInfo"><span class="hs-identifier hs-var hs-var">dwFdeHasInfo</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-269"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="dwFdeBlocks"><span class="annot"><span class="annottext">DwarfFrameProc -&gt; [DwarfFrameBlock]
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwFdeBlocks"><span class="hs-identifier hs-var hs-var">dwFdeBlocks</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-type">DwarfFrameBlock</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-270"></span><span>      </span><span class="hs-comment">-- ^ List of blocks. Order must match asm!</span><span>
</span><span id="line-271"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-272"></span><span>
</span><span id="line-273"></span><span class="hs-comment">-- | Unwind instructions for a block. Will become part of the</span><span>
</span><span id="line-274"></span><span class="hs-comment">-- containing FDE.</span><span>
</span><span id="line-275"></span><span class="hs-keyword">data</span><span> </span><span id="DwarfFrameBlock"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-var">DwarfFrameBlock</span></a></span></span><span>
</span><span id="line-276"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="DwarfFrameBlock"><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-var">DwarfFrameBlock</span></a></span></span><span>
</span><span id="line-277"></span><span>    </span><span class="hs-special">{</span><span> </span><span id="dwFdeBlkHasInfo"><span class="annot"><span class="annottext">DwarfFrameBlock -&gt; Bool
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwFdeBlkHasInfo"><span class="hs-identifier hs-var hs-var">dwFdeBlkHasInfo</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-278"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="dwFdeUnwind"><span class="annot"><span class="annottext">DwarfFrameBlock -&gt; [UnwindPoint]
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwFdeUnwind"><span class="hs-identifier hs-var hs-var">dwFdeUnwind</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindPoint"><span class="hs-identifier hs-type">UnwindPoint</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-279"></span><span>      </span><span class="hs-comment">-- ^ these unwind points must occur in the same order as they occur</span><span>
</span><span id="line-280"></span><span>      </span><span class="hs-comment">-- in the block</span><span>
</span><span id="line-281"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-282"></span><span>
</span><span id="line-283"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621681042752"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-type">DwarfFrameBlock</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-284"></span><span>  </span><span id="local-6989586621681042744"><span class="annot"><span class="annottext">ppr :: DwarfFrameBlock -&gt; SDoc
</span><a href="#local-6989586621681042744"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-type">DwarfFrameBlock</span></a></span><span> </span><span id="local-6989586621681042743"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042743"><span class="hs-identifier hs-var">hasInfo</span></a></span></span><span> </span><span id="local-6989586621681042742"><span class="annot"><span class="annottext">[UnwindPoint]
</span><a href="#local-6989586621681042742"><span class="hs-identifier hs-var">unwinds</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042743"><span class="hs-identifier hs-var">hasInfo</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[UnwindPoint] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[UnwindPoint]
</span><a href="#local-6989586621681042742"><span class="hs-identifier hs-var">unwinds</span></a></span><span>
</span><span id="line-285"></span><span>
</span><span id="line-286"></span><span class="hs-comment">-- | Header for the @.debug_frame@ section. Here we emit the &quot;Common</span><span>
</span><span id="line-287"></span><span class="hs-comment">-- Information Entry&quot; record that establishes general call frame</span><span>
</span><span id="line-288"></span><span class="hs-comment">-- parameters and the default stack layout.</span><span>
</span><span id="line-289"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfFrame"><span class="hs-identifier hs-type">pprDwarfFrame</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrame"><span class="hs-identifier hs-type">DwarfFrame</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-290"></span><span id="pprDwarfFrame"><span class="annot"><span class="annottext">pprDwarfFrame :: Platform -&gt; DwarfFrame -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwarfFrame"><span class="hs-identifier hs-var hs-var">pprDwarfFrame</span></a></span></span><span> </span><span id="local-6989586621681042739"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrame"><span class="hs-identifier hs-type">DwarfFrame</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">dwCieLabel :: DwarfFrame -&gt; CLabel
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCieLabel"><span class="hs-identifier hs-var">dwCieLabel</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621681042738"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042738"><span class="hs-identifier hs-var">cieLabel</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">dwCieInit :: DwarfFrame -&gt; UnwindTable
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCieInit"><span class="hs-identifier hs-var">dwCieInit</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621681042737"><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042737"><span class="hs-identifier hs-var">cieInit</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">dwCieProcs :: DwarfFrame -&gt; [DwarfFrameProc]
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwCieProcs"><span class="hs-identifier hs-var">dwCieProcs</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621681042736"><span class="annot"><span class="annottext">[DwarfFrameProc]
</span><a href="#local-6989586621681042736"><span class="hs-identifier hs-var">procs</span></a></span></span><span class="hs-special">}</span><span>
</span><span id="line-291"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681042735"><span class="annot"><span class="annottext">cieStartLabel :: CLabel
</span><a href="#local-6989586621681042735"><span class="hs-identifier hs-var hs-var">cieStartLabel</span></a></span></span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; FastString -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempDerivedLabel"><span class="hs-identifier hs-var">mkAsmTempDerivedLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042738"><span class="hs-identifier hs-var">cieLabel</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;_start&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-292"></span><span>        </span><span id="local-6989586621681042732"><span class="annot"><span class="annottext">cieEndLabel :: CLabel
</span><a href="#local-6989586621681042732"><span class="hs-identifier hs-var hs-var">cieEndLabel</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042738"><span class="hs-identifier hs-var">cieLabel</span></a></span><span>
</span><span id="line-293"></span><span>        </span><span id="local-6989586621681042729"><span class="annot"><span class="annottext">length :: SDoc
</span><a href="#local-6989586621681042729"><span class="hs-identifier hs-var hs-var">length</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042732"><span class="hs-identifier hs-var">cieEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042735"><span class="hs-identifier hs-var">cieStartLabel</span></a></span><span>
</span><span id="line-294"></span><span>        </span><span id="local-6989586621681042728"><span class="annot"><span class="annottext">spReg :: Word8
</span><a href="#local-6989586621681042728"><span class="hs-identifier hs-var hs-var">spReg</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-var">dwarfGlobalRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span>
</span><span id="line-295"></span><span>        </span><span id="local-6989586621681042725"><span class="annot"><span class="annottext">retReg :: Word8
</span><a href="#local-6989586621681042725"><span class="hs-identifier hs-var hs-var">retReg</span></a></span></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfReturnRegNo"><span class="hs-identifier hs-var">dwarfReturnRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span>
</span><span id="line-296"></span><span>        </span><span id="local-6989586621681042723"><span class="annot"><span class="annottext">wordSize :: Int
</span><a href="#local-6989586621681042723"><span class="hs-identifier hs-var hs-var">wordSize</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Int
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSizeInBytes"><span class="hs-identifier hs-var">platformWordSizeInBytes</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span>
</span><span id="line-297"></span><span>        </span><span class="annot"><a href="#local-6989586621681042722"><span class="hs-identifier hs-type">pprInit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier hs-type">GlobalReg</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-298"></span><span>        </span><span id="local-6989586621681042722"><span class="annot"><span class="annottext">pprInit :: (GlobalReg, Maybe UnwindExpr) -&gt; SDoc
</span><a href="#local-6989586621681042722"><span class="hs-identifier hs-var hs-var">pprInit</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681042721"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042721"><span class="hs-identifier hs-var">g</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621681042720"><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="#local-6989586621681042720"><span class="hs-identifier hs-var">uw</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform
-&gt; GlobalReg -&gt; (Maybe UnwindExpr, Maybe UnwindExpr) -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042721"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="#local-6989586621681042720"><span class="hs-identifier hs-var">uw</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-299"></span><span>
</span><span id="line-300"></span><span>        </span><span class="hs-comment">-- Preserve C stack pointer: This necessary to override that default</span><span>
</span><span id="line-301"></span><span>        </span><span class="hs-comment">-- unwinding behavior of setting $sp = CFA.</span><span>
</span><span id="line-302"></span><span>        </span><span id="local-6989586621681042718"><span class="annot"><span class="annottext">preserveSp :: SDoc
</span><a href="#local-6989586621681042718"><span class="hs-identifier hs-var hs-var">preserveSp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Arch
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformArch"><span class="hs-identifier hs-var">platformArch</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-303"></span><span>          </span><span class="annot"><span class="annottext">Arch
</span><a href="../../ghc-boot/src/GHC.Platform.html#ArchX86"><span class="hs-identifier hs-var">ArchX86</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_same_value"><span class="hs-identifier hs-var">dW_CFA_same_value</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">4</span></span><span>
</span><span id="line-304"></span><span>          </span><span class="annot"><span class="annottext">Arch
</span><a href="../../ghc-boot/src/GHC.Platform.html#ArchX86_64"><span class="hs-identifier hs-var">ArchX86_64</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_same_value"><span class="hs-identifier hs-var">dW_CFA_same_value</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">7</span></span><span>
</span><span id="line-305"></span><span>          </span><span class="annot"><span class="annottext">Arch
</span><span class="hs-identifier">_</span></span><span>          </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-306"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042738"><span class="hs-identifier hs-var">cieLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-307"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var">pprData4'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042729"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="hs-comment">-- Length of CIE</span><span>
</span><span id="line-308"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042735"><span class="hs-identifier hs-var">cieStartLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-309"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var">pprData4'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-1&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-310"></span><span>                               </span><span class="hs-comment">-- Common Information Entry marker (-1 = 0xf..f)</span><span>
</span><span id="line-311"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">3</span></span><span>        </span><span class="hs-comment">-- CIE version (we require DWARF 3)</span><span>
</span><span id="line-312"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>        </span><span class="hs-comment">-- Augmentation (none)</span><span>
</span><span id="line-313"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">1</span></span><span>        </span><span class="hs-comment">-- Code offset multiplicator</span><span>
</span><span id="line-314"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">128</span></span><span class="annot"><span class="annottext">Word8 -&gt; Word8 -&gt; Word8
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">Int -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042723"><span class="hs-identifier hs-var">wordSize</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-315"></span><span>                               </span><span class="hs-comment">-- Data offset multiplicator</span><span>
</span><span id="line-316"></span><span>                               </span><span class="hs-comment">-- (stacks grow down =&gt; &quot;-w&quot; in signed LEB128)</span><span>
</span><span id="line-317"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042725"><span class="hs-identifier hs-var">retReg</span></a></span><span>   </span><span class="hs-comment">-- virtual register holding return address</span><span>
</span><span id="line-318"></span><span>            </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-319"></span><span>       </span><span class="hs-comment">-- Initial unwind table</span><span>
</span><span id="line-320"></span><span>       </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((GlobalReg, Maybe UnwindExpr) -&gt; SDoc)
-&gt; [(GlobalReg, Maybe UnwindExpr)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(GlobalReg, Maybe UnwindExpr) -&gt; SDoc
</span><a href="#local-6989586621681042722"><span class="hs-identifier hs-var">pprInit</span></a></span><span> </span><span class="annot"><span class="annottext">([(GlobalReg, Maybe UnwindExpr)] -&gt; [SDoc])
-&gt; [(GlobalReg, Maybe UnwindExpr)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable -&gt; [(GlobalReg, Maybe UnwindExpr)]
forall k a. Map k a -&gt; [(k, a)]
</span><a href="../../containers/src/Data.Map.Internal.html#toList"><span class="hs-identifier hs-var">Map.toList</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042737"><span class="hs-identifier hs-var">cieInit</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-321"></span><span>       </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-comment">-- RET = *CFA</span><span>
</span><span id="line-322"></span><span>              </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_offset"><span class="hs-identifier hs-var">dW_CFA_offset</span></a></span><span class="annot"><span class="annottext">Word8 -&gt; Word8 -&gt; Word8
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042725"><span class="hs-identifier hs-var">retReg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-323"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span>
</span><span id="line-324"></span><span>
</span><span id="line-325"></span><span>              </span><span class="hs-comment">-- Preserve C stack pointer</span><span>
</span><span id="line-326"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042718"><span class="hs-identifier hs-var">preserveSp</span></a></span><span>
</span><span id="line-327"></span><span>
</span><span id="line-328"></span><span>              </span><span class="hs-comment">-- Sp' = CFA</span><span>
</span><span id="line-329"></span><span>              </span><span class="hs-comment">-- (we need to set this manually as our (STG) Sp register is</span><span>
</span><span id="line-330"></span><span>              </span><span class="hs-comment">-- often not the architecture's default stack register)</span><span>
</span><span id="line-331"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_val_offset"><span class="hs-identifier hs-var">dW_CFA_val_offset</span></a></span><span>
</span><span id="line-332"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8 -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042728"><span class="hs-identifier hs-var">spReg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-333"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">0</span></span><span>
</span><span id="line-334"></span><span>            </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-335"></span><span>       </span><span class="annot"><span class="annottext">Platform -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#wordAlign"><span class="hs-identifier hs-var">wordAlign</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-336"></span><span>       </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042732"><span class="hs-identifier hs-var">cieEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-337"></span><span>       </span><span class="hs-comment">-- Procedure unwind tables</span><span>
</span><span id="line-338"></span><span>       </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(DwarfFrameProc -&gt; SDoc) -&gt; [DwarfFrameProc] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; UnwindTable -&gt; DwarfFrameProc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFrameProc"><span class="hs-identifier hs-var">pprFrameProc</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042739"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042738"><span class="hs-identifier hs-var">cieLabel</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042737"><span class="hs-identifier hs-var">cieInit</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[DwarfFrameProc]
</span><a href="#local-6989586621681042736"><span class="hs-identifier hs-var">procs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-339"></span><span>
</span><span id="line-340"></span><span class="hs-comment">-- | Writes a &quot;Frame Description Entry&quot; for a procedure. This consists</span><span>
</span><span id="line-341"></span><span class="hs-comment">-- mainly of referencing the CIE and writing state machine</span><span>
</span><span id="line-342"></span><span class="hs-comment">-- instructions to describe how the frame base (CFA) changes.</span><span>
</span><span id="line-343"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFrameProc"><span class="hs-identifier hs-type">pprFrameProc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindTable"><span class="hs-identifier hs-type">UnwindTable</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameProc"><span class="hs-identifier hs-type">DwarfFrameProc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-344"></span><span id="pprFrameProc"><span class="annot"><span class="annottext">pprFrameProc :: Platform -&gt; CLabel -&gt; UnwindTable -&gt; DwarfFrameProc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFrameProc"><span class="hs-identifier hs-var hs-var">pprFrameProc</span></a></span></span><span> </span><span id="local-6989586621681042708"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042708"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042707"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042707"><span class="hs-identifier hs-var">frameLbl</span></a></span></span><span> </span><span id="local-6989586621681042706"><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042706"><span class="hs-identifier hs-var">initUw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameProc"><span class="hs-identifier hs-type">DwarfFrameProc</span></a></span><span> </span><span id="local-6989586621681042705"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span></span><span> </span><span id="local-6989586621681042704"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042704"><span class="hs-identifier hs-var">hasInfo</span></a></span></span><span> </span><span id="local-6989586621681042703"><span class="annot"><span class="annottext">[DwarfFrameBlock]
</span><a href="#local-6989586621681042703"><span class="hs-identifier hs-var">blocks</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-345"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681042702"><span class="annot"><span class="annottext">fdeLabel :: CLabel
</span><a href="#local-6989586621681042702"><span class="hs-identifier hs-var hs-var">fdeLabel</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; FastString -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempDerivedLabel"><span class="hs-identifier hs-var">mkAsmTempDerivedLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;_fde&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-346"></span><span>        </span><span id="local-6989586621681042701"><span class="annot"><span class="annottext">fdeEndLabel :: CLabel
</span><a href="#local-6989586621681042701"><span class="hs-identifier hs-var hs-var">fdeEndLabel</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; FastString -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempDerivedLabel"><span class="hs-identifier hs-var">mkAsmTempDerivedLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;_fde_end&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-347"></span><span>        </span><span id="local-6989586621681042700"><span class="annot"><span class="annottext">procEnd :: CLabel
</span><a href="#local-6989586621681042700"><span class="hs-identifier hs-var hs-var">procEnd</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span><span>
</span><span id="line-348"></span><span>        </span><span id="local-6989586621681042699"><span class="annot"><span class="annottext">ifInfo :: String -&gt; SDoc
</span><a href="#local-6989586621681042699"><span class="hs-identifier hs-var hs-var">ifInfo</span></a></span></span><span> </span><span id="local-6989586621681042698"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042698"><span class="hs-identifier hs-var">str</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042704"><span class="hs-identifier hs-var">hasInfo</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042698"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-349"></span><span>                      </span><span class="hs-comment">-- see [Note: Info Offset]</span><span>
</span><span id="line-350"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-var">whenPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;# Unwinding for&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-351"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var">pprData4'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042701"><span class="hs-identifier hs-var">fdeEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042702"><span class="hs-identifier hs-var">fdeLabel</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-352"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042702"><span class="hs-identifier hs-var">fdeLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-353"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var">pprData4'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042707"><span class="hs-identifier hs-var">frameLbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-354"></span><span>                         </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfFrameLabel"><span class="hs-identifier hs-var">dwarfFrameLabel</span></a></span><span class="hs-special">)</span><span>    </span><span class="hs-comment">-- Reference to CIE</span><span>
</span><span id="line-355"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042708"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="#local-6989586621681042699"><span class="hs-identifier hs-var">ifInfo</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-1&quot;</span></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- Code pointer</span><span>
</span><span id="line-356"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042708"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042700"><span class="hs-identifier hs-var">procEnd</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-357"></span><span>                                 </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042705"><span class="hs-identifier hs-var">procLbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="#local-6989586621681042699"><span class="hs-identifier hs-var">ifInfo</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;+1&quot;</span></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- Block byte length</span><span>
</span><span id="line-358"></span><span>            </span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-359"></span><span>       </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">State UnwindTable [SDoc] -&gt; UnwindTable -&gt; [SDoc]
forall s a. State s a -&gt; s -&gt; a
</span><a href="../../transformers/src/Control.Monad.Trans.State.Strict.html#evalState"><span class="hs-identifier hs-var">S.evalState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(DwarfFrameBlock -&gt; StateT UnwindTable Identity SDoc)
-&gt; [DwarfFrameBlock] -&gt; State UnwindTable [SDoc]
forall (t :: * -&gt; *) (m :: * -&gt; *) a b.
(Traversable t, Monad m) =&gt;
(a -&gt; m b) -&gt; t a -&gt; m (t b)
</span><a href="../../base/src/Data.Traversable.html#mapM"><span class="hs-identifier hs-var">mapM</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; DwarfFrameBlock -&gt; StateT UnwindTable Identity SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFrameBlock"><span class="hs-identifier hs-var">pprFrameBlock</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042708"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[DwarfFrameBlock]
</span><a href="#local-6989586621681042703"><span class="hs-identifier hs-var">blocks</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042706"><span class="hs-identifier hs-var">initUw</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-360"></span><span>       </span><span class="annot"><span class="annottext">Platform -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#wordAlign"><span class="hs-identifier hs-var">wordAlign</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042708"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-361"></span><span>       </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042701"><span class="hs-identifier hs-var">fdeEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-362"></span><span>
</span><span id="line-363"></span><span class="hs-comment">-- | Generates unwind information for a block. We only generate</span><span>
</span><span id="line-364"></span><span class="hs-comment">-- instructions where unwind information actually changes. This small</span><span>
</span><span id="line-365"></span><span class="hs-comment">-- optimisations saves a lot of space, as subsequent blocks often have</span><span>
</span><span id="line-366"></span><span class="hs-comment">-- the same unwind information.</span><span>
</span><span id="line-367"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFrameBlock"><span class="hs-identifier hs-type">pprFrameBlock</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-type">DwarfFrameBlock</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../transformers/src/Control.Monad.Trans.State.Strict.html#State"><span class="hs-identifier hs-type">S.State</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindTable"><span class="hs-identifier hs-type">UnwindTable</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-368"></span><span id="pprFrameBlock"><span class="annot"><span class="annottext">pprFrameBlock :: Platform -&gt; DwarfFrameBlock -&gt; StateT UnwindTable Identity SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFrameBlock"><span class="hs-identifier hs-var hs-var">pprFrameBlock</span></a></span></span><span> </span><span id="local-6989586621681042692"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042692"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#DwarfFrameBlock"><span class="hs-identifier hs-type">DwarfFrameBlock</span></a></span><span> </span><span id="local-6989586621681042691"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042691"><span class="hs-identifier hs-var">hasInfo</span></a></span></span><span> </span><span id="local-6989586621681042690"><span class="annot"><span class="annottext">[UnwindPoint]
</span><a href="#local-6989586621681042690"><span class="hs-identifier hs-var">uws0</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-369"></span><span>    </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc)
-&gt; State UnwindTable [SDoc] -&gt; StateT UnwindTable Identity SDoc
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; UnwindPoint -&gt; StateT UnwindTable Identity SDoc)
-&gt; [Bool] -&gt; [UnwindPoint] -&gt; State UnwindTable [SDoc]
forall (m :: * -&gt; *) a b c.
Applicative m =&gt;
(a -&gt; b -&gt; m c) -&gt; [a] -&gt; [b] -&gt; m [c]
</span><a href="../../base/src/Control.Monad.html#zipWithM"><span class="hs-identifier hs-var">zipWithM</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; UnwindPoint -&gt; StateT UnwindTable Identity SDoc
</span><a href="#local-6989586621681042688"><span class="hs-identifier hs-var">pprFrameDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; [Bool] -&gt; [Bool]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; [Bool]
forall a. a -&gt; [a]
</span><a href="../../base/src/GHC.List.html#repeat"><span class="hs-identifier hs-var">repeat</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[UnwindPoint]
</span><a href="#local-6989586621681042690"><span class="hs-identifier hs-var">uws0</span></a></span><span>
</span><span id="line-370"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-371"></span><span>    </span><span class="annot"><a href="#local-6989586621681042688"><span class="hs-identifier hs-type">pprFrameDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindPoint"><span class="hs-identifier hs-type">UnwindPoint</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../transformers/src/Control.Monad.Trans.State.Strict.html#State"><span class="hs-identifier hs-type">S.State</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindTable"><span class="hs-identifier hs-type">UnwindTable</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-372"></span><span>    </span><span id="local-6989586621681042688"><span class="annot"><span class="annottext">pprFrameDecl :: Bool -&gt; UnwindPoint -&gt; StateT UnwindTable Identity SDoc
</span><a href="#local-6989586621681042688"><span class="hs-identifier hs-var hs-var">pprFrameDecl</span></a></span></span><span> </span><span id="local-6989586621681042686"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042686"><span class="hs-identifier hs-var">firstDecl</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindPoint"><span class="hs-identifier hs-type">UnwindPoint</span></a></span><span> </span><span id="local-6989586621681042684"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042684"><span class="hs-identifier hs-var">lbl</span></a></span></span><span> </span><span id="local-6989586621681042683"><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042683"><span class="hs-identifier hs-var">uws</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(UnwindTable -&gt; (SDoc, UnwindTable))
-&gt; StateT UnwindTable Identity SDoc
forall (m :: * -&gt; *) s a. Monad m =&gt; (s -&gt; (a, s)) -&gt; StateT s m a
</span><a href="../../transformers/src/Control.Monad.Trans.State.Strict.html#state"><span class="hs-identifier hs-var">S.state</span></a></span><span> </span><span class="annot"><span class="annottext">((UnwindTable -&gt; (SDoc, UnwindTable))
 -&gt; StateT UnwindTable Identity SDoc)
-&gt; (UnwindTable -&gt; (SDoc, UnwindTable))
-&gt; StateT UnwindTable Identity SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681042681"><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042681"><span class="hs-identifier hs-var">oldUws</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-373"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span class="hs-comment">-- Did a register's unwind expression change?</span><span>
</span><span id="line-374"></span><span>            </span><span class="annot"><a href="#local-6989586621681042680"><span class="hs-identifier hs-type">isChanged</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier hs-type">GlobalReg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span>
</span><span id="line-375"></span><span>                      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-376"></span><span>            </span><span id="local-6989586621681042680"><span class="annot"><span class="annottext">isChanged :: GlobalReg
-&gt; Maybe UnwindExpr -&gt; Maybe (Maybe UnwindExpr, Maybe UnwindExpr)
</span><a href="#local-6989586621681042680"><span class="hs-identifier hs-var hs-var">isChanged</span></a></span></span><span> </span><span id="local-6989586621681042679"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042679"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621681042678"><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="#local-6989586621681042678"><span class="hs-identifier hs-var">new</span></a></span></span><span>
</span><span id="line-377"></span><span>                </span><span class="hs-comment">-- the value didn't change</span><span>
</span><span id="line-378"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr -&gt; Maybe (Maybe UnwindExpr)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="#local-6989586621681042678"><span class="hs-identifier hs-var">new</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr) -&gt; Maybe (Maybe UnwindExpr) -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr)
</span><a href="#local-6989586621681042677"><span class="hs-identifier hs-var">old</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr, Maybe UnwindExpr)
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-379"></span><span>                </span><span class="hs-comment">-- the value was and still is undefined</span><span>
</span><span id="line-380"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr)
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr)
</span><a href="#local-6989586621681042677"><span class="hs-identifier hs-var">old</span></a></span><span>
</span><span id="line-381"></span><span>              </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="#local-6989586621681042678"><span class="hs-identifier hs-var">new</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr, Maybe UnwindExpr)
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-382"></span><span>                </span><span class="hs-comment">-- the value changed</span><span>
</span><span id="line-383"></span><span>              </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Maybe UnwindExpr, Maybe UnwindExpr)
-&gt; Maybe (Maybe UnwindExpr, Maybe UnwindExpr)
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr) -&gt; Maybe UnwindExpr
forall (m :: * -&gt; *) a. Monad m =&gt; m (m a) -&gt; m a
</span><a href="../../base/src/GHC.Base.html#join"><span class="hs-identifier hs-var">join</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe (Maybe UnwindExpr)
</span><a href="#local-6989586621681042677"><span class="hs-identifier hs-var">old</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="#local-6989586621681042678"><span class="hs-identifier hs-var">new</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-384"></span><span>              </span><span class="hs-keyword">where</span><span>
</span><span id="line-385"></span><span>                </span><span id="local-6989586621681042677"><span class="annot"><span class="annottext">old :: Maybe (Maybe UnwindExpr)
</span><a href="#local-6989586621681042677"><span class="hs-identifier hs-var hs-var">old</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GlobalReg -&gt; UnwindTable -&gt; Maybe (Maybe UnwindExpr)
forall k a. Ord k =&gt; k -&gt; Map k a -&gt; Maybe a
</span><a href="../../containers/src/Data.Map.Internal.html#lookup"><span class="hs-identifier hs-var">Map.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042679"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042681"><span class="hs-identifier hs-var">oldUws</span></a></span><span>
</span><span id="line-386"></span><span>
</span><span id="line-387"></span><span>            </span><span id="local-6989586621681042673"><span class="annot"><span class="annottext">changed :: [(GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))]
</span><a href="#local-6989586621681042673"><span class="hs-identifier hs-var hs-var">changed</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map GlobalReg (Maybe UnwindExpr, Maybe UnwindExpr)
-&gt; [(GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))]
forall k a. Map k a -&gt; [(k, a)]
</span><a href="../../containers/src/Data.Map.Internal.html#toList"><span class="hs-identifier hs-var">Map.toList</span></a></span><span> </span><span class="annot"><span class="annottext">(Map GlobalReg (Maybe UnwindExpr, Maybe UnwindExpr)
 -&gt; [(GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))])
-&gt; Map GlobalReg (Maybe UnwindExpr, Maybe UnwindExpr)
-&gt; [(GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(GlobalReg
 -&gt; Maybe UnwindExpr -&gt; Maybe (Maybe UnwindExpr, Maybe UnwindExpr))
-&gt; UnwindTable
-&gt; Map GlobalReg (Maybe UnwindExpr, Maybe UnwindExpr)
forall k a b. (k -&gt; a -&gt; Maybe b) -&gt; Map k a -&gt; Map k b
</span><a href="../../containers/src/Data.Map.Internal.html#mapMaybeWithKey"><span class="hs-identifier hs-var">Map.mapMaybeWithKey</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
-&gt; Maybe UnwindExpr -&gt; Maybe (Maybe UnwindExpr, Maybe UnwindExpr)
</span><a href="#local-6989586621681042680"><span class="hs-identifier hs-var">isChanged</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042683"><span class="hs-identifier hs-var">uws</span></a></span><span>
</span><span id="line-388"></span><span>
</span><span id="line-389"></span><span>        </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042681"><span class="hs-identifier hs-var">oldUws</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable -&gt; UnwindTable -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042683"><span class="hs-identifier hs-var">uws</span></a></span><span>
</span><span id="line-390"></span><span>             </span><span class="hs-keyword">then</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042681"><span class="hs-identifier hs-var">oldUws</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-391"></span><span>             </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">let</span><span> </span><span class="hs-comment">-- see [Note: Info Offset]</span><span>
</span><span id="line-392"></span><span>                      </span><span id="local-6989586621681042671"><span class="annot"><span class="annottext">needsOffset :: Bool
</span><a href="#local-6989586621681042671"><span class="hs-identifier hs-var hs-var">needsOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042686"><span class="hs-identifier hs-var">firstDecl</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042691"><span class="hs-identifier hs-var">hasInfo</span></a></span><span>
</span><span id="line-393"></span><span>                      </span><span id="local-6989586621681042668"><span class="annot"><span class="annottext">lblDoc :: SDoc
</span><a href="#local-6989586621681042668"><span class="hs-identifier hs-var hs-var">lblDoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042684"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-394"></span><span>                               </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042671"><span class="hs-identifier hs-var">needsOffset</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-1&quot;</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-395"></span><span>                      </span><span id="local-6989586621681042667"><span class="annot"><span class="annottext">doc :: SDoc
</span><a href="#local-6989586621681042667"><span class="hs-identifier hs-var hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_set_loc"><span class="hs-identifier hs-var">dW_CFA_set_loc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042692"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042668"><span class="hs-identifier hs-var">lblDoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-396"></span><span>                            </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr)) -&gt; SDoc)
-&gt; [(GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GlobalReg -&gt; (Maybe UnwindExpr, Maybe UnwindExpr) -&gt; SDoc)
-&gt; (GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr)) -&gt; SDoc
forall a b c. (a -&gt; b -&gt; c) -&gt; (a, b) -&gt; c
</span><a href="../../base/src/Data.Tuple.html#uncurry"><span class="hs-identifier hs-var">uncurry</span></a></span><span> </span><span class="annot"><span class="annottext">((GlobalReg -&gt; (Maybe UnwindExpr, Maybe UnwindExpr) -&gt; SDoc)
 -&gt; (GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr)) -&gt; SDoc)
-&gt; (GlobalReg -&gt; (Maybe UnwindExpr, Maybe UnwindExpr) -&gt; SDoc)
-&gt; (GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))
-&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
-&gt; GlobalReg -&gt; (Maybe UnwindExpr, Maybe UnwindExpr) -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042692"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(GlobalReg, (Maybe UnwindExpr, Maybe UnwindExpr))]
</span><a href="#local-6989586621681042673"><span class="hs-identifier hs-var">changed</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-397"></span><span>                  </span><span class="hs-keyword">in</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042667"><span class="hs-identifier hs-var">doc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681042683"><span class="hs-identifier hs-var">uws</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-398"></span><span>
</span><span id="line-399"></span><span class="hs-comment">-- Note [Info Offset]</span><span>
</span><span id="line-400"></span><span class="hs-comment">--</span><span>
</span><span id="line-401"></span><span class="hs-comment">-- GDB was pretty much written with C-like programs in mind, and as a</span><span>
</span><span id="line-402"></span><span class="hs-comment">-- result they assume that once you have a return address, it is a</span><span>
</span><span id="line-403"></span><span class="hs-comment">-- good idea to look at (PC-1) to unwind further - as that's where the</span><span>
</span><span id="line-404"></span><span class="hs-comment">-- &quot;call&quot; instruction is supposed to be.</span><span>
</span><span id="line-405"></span><span class="hs-comment">--</span><span>
</span><span id="line-406"></span><span class="hs-comment">-- Now on one hand, code generated by GHC looks nothing like what GDB</span><span>
</span><span id="line-407"></span><span class="hs-comment">-- expects, and in fact going up from a return pointer is guaranteed</span><span>
</span><span id="line-408"></span><span class="hs-comment">-- to land us inside an info table! On the other hand, that actually</span><span>
</span><span id="line-409"></span><span class="hs-comment">-- gives us some wiggle room, as we expect IP to never *actually* end</span><span>
</span><span id="line-410"></span><span class="hs-comment">-- up inside the info table, so we can &quot;cheat&quot; by putting whatever GDB</span><span>
</span><span id="line-411"></span><span class="hs-comment">-- expects to see there. This is probably pretty safe, as GDB cannot</span><span>
</span><span id="line-412"></span><span class="hs-comment">-- assume (PC-1) to be a valid code pointer in the first place - and I</span><span>
</span><span id="line-413"></span><span class="hs-comment">-- have seen no code trying to correct this.</span><span>
</span><span id="line-414"></span><span class="hs-comment">--</span><span>
</span><span id="line-415"></span><span class="hs-comment">-- Note that this will not prevent GDB from failing to look-up the</span><span>
</span><span id="line-416"></span><span class="hs-comment">-- correct function name for the frame, as that uses the symbol table,</span><span>
</span><span id="line-417"></span><span class="hs-comment">-- which we can not manipulate as easily.</span><span>
</span><span id="line-418"></span><span class="hs-comment">--</span><span>
</span><span id="line-419"></span><span class="hs-comment">-- There's a GDB patch to address this at [1]. At the moment of writing</span><span>
</span><span id="line-420"></span><span class="hs-comment">-- it's not merged, so I recommend building GDB with the patch if you</span><span>
</span><span id="line-421"></span><span class="hs-comment">-- care about unwinding. The hack above doesn't cover every case.</span><span>
</span><span id="line-422"></span><span class="hs-comment">--</span><span>
</span><span id="line-423"></span><span class="hs-comment">-- [1] https://sourceware.org/ml/gdb-patches/2018-02/msg00055.html</span><span>
</span><span id="line-424"></span><span>
</span><span id="line-425"></span><span class="hs-comment">-- | Get DWARF register ID for a given GlobalReg</span><span>
</span><span id="line-426"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-type">dwarfGlobalRegNo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier hs-type">GlobalReg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span>
</span><span id="line-427"></span><span id="dwarfGlobalRegNo"><span class="annot"><span class="annottext">dwarfGlobalRegNo :: Platform -&gt; GlobalReg -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-var hs-var">dwarfGlobalRegNo</span></a></span></span><span> </span><span id="local-6989586621681042664"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042664"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#UnwindReturnReg"><span class="hs-identifier hs-var">UnwindReturnReg</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfReturnRegNo"><span class="hs-identifier hs-var">dwarfReturnRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042664"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-428"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-var">dwarfGlobalRegNo</span></a></span><span> </span><span id="local-6989586621681042662"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042662"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span id="local-6989586621681042661"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042661"><span class="hs-identifier hs-var">reg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; (RealReg -&gt; Word8) -&gt; Maybe RealReg -&gt; Word8
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Reg -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dwarfRegNo"><span class="hs-identifier hs-var">dwarfRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042662"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">(Reg -&gt; Word8) -&gt; (RealReg -&gt; Reg) -&gt; RealReg -&gt; Word8
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">RealReg -&gt; Reg
</span><a href="GHC.Platform.Reg.html#RegReal"><span class="hs-identifier hs-var">RegReal</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Maybe RealReg -&gt; Word8) -&gt; Maybe RealReg -&gt; Word8
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; Maybe RealReg
</span><a href="GHC.Platform.Regs.html#globalRegMaybe"><span class="hs-identifier hs-var">globalRegMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042662"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042661"><span class="hs-identifier hs-var">reg</span></a></span><span>
</span><span id="line-429"></span><span>
</span><span id="line-430"></span><span class="hs-comment">-- | Generate code for setting the unwind information for a register,</span><span>
</span><span id="line-431"></span><span class="hs-comment">-- optimized using its known old value in the table. Note that &quot;Sp&quot; is</span><span>
</span><span id="line-432"></span><span class="hs-comment">-- special: We see it as synonym for the CFA.</span><span>
</span><span id="line-433"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-type">pprSetUnwind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span>
</span><span id="line-434"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier hs-type">GlobalReg</span></a></span><span>
</span><span id="line-435"></span><span>                </span><span class="hs-comment">-- ^ the register to produce an unwinding table entry for</span><span>
</span><span id="line-436"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-437"></span><span>                </span><span class="hs-comment">-- ^ the old and new values of the register</span><span>
</span><span id="line-438"></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-439"></span><span id="pprSetUnwind"><span class="annot"><span class="annottext">pprSetUnwind :: Platform
-&gt; GlobalReg -&gt; (Maybe UnwindExpr, Maybe UnwindExpr) -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var hs-var">pprSetUnwind</span></a></span></span><span> </span><span id="local-6989586621681042657"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042657"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042656"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042656"><span class="hs-identifier hs-var">g</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-440"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUndefUnwind"><span class="hs-identifier hs-var">pprUndefUnwind</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042657"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042656"><span class="hs-identifier hs-var">g</span></a></span><span>
</span><span id="line-441"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><span class="hs-identifier">_</span></span><span>    </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span id="local-6989586621681042653"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042653"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span id="local-6989586621681042652"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042652"><span class="hs-identifier hs-var">s'</span></a></span></span><span> </span><span id="local-6989586621681042651"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042651"><span class="hs-identifier hs-var">o'</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042653"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg -&gt; GlobalReg -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042652"><span class="hs-identifier hs-var">s'</span></a></span><span>
</span><span id="line-442"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042651"><span class="hs-identifier hs-var">o'</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-443"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_def_cfa_offset"><span class="hs-identifier hs-var">dW_CFA_def_cfa_offset</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042651"><span class="hs-identifier hs-var">o'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-444"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_def_cfa_offset_sf"><span class="hs-identifier hs-var">dW_CFA_def_cfa_offset_sf</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var">pprLEBInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042651"><span class="hs-identifier hs-var">o'</span></a></span><span>
</span><span id="line-445"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span id="local-6989586621681042648"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042648"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span id="local-6989586621681042647"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042647"><span class="hs-identifier hs-var">s'</span></a></span></span><span> </span><span id="local-6989586621681042646"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042646"><span class="hs-identifier hs-var">o'</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-446"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042646"><span class="hs-identifier hs-var">o'</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-447"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_def_cfa"><span class="hs-identifier hs-var">dW_CFA_def_cfa</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-448"></span><span>         </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042648"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042647"><span class="hs-identifier hs-var">s'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-449"></span><span>         </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042646"><span class="hs-identifier hs-var">o'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-450"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_def_cfa_sf"><span class="hs-identifier hs-var">dW_CFA_def_cfa_sf</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-451"></span><span>         </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042648"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042647"><span class="hs-identifier hs-var">s'</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-452"></span><span>         </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var">pprLEBInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042646"><span class="hs-identifier hs-var">o'</span></a></span><span>
</span><span id="line-453"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span id="local-6989586621681042642"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042642"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681042641"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042641"><span class="hs-identifier hs-var">uw</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-454"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_def_cfa_expression"><span class="hs-identifier hs-var">dW_CFA_def_cfa_expression</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool -&gt; UnwindExpr -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUnwindExpr"><span class="hs-identifier hs-var">pprUnwindExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042642"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042641"><span class="hs-identifier hs-var">uw</span></a></span><span>
</span><span id="line-455"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span id="local-6989586621681042638"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042638"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042637"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042637"><span class="hs-identifier hs-var">g</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwDeref"><span class="hs-identifier hs-type">UwDeref</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span> </span><span id="local-6989586621681042635"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042635"><span class="hs-identifier hs-var">o</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-456"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042635"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-glyph">-</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042635"><span class="hs-identifier hs-var">o</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#mod"><span class="hs-operator hs-var">`mod`</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Int
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSizeInBytes"><span class="hs-identifier hs-var">platformWordSizeInBytes</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042638"><span class="hs-identifier hs-var">plat</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-comment">-- expected case</span><span>
</span><span id="line-457"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_offset"><span class="hs-identifier hs-var">dW_CFA_offset</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; Word8 -&gt; Word8
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-var">dwarfGlobalRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042638"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042637"><span class="hs-identifier hs-var">g</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-458"></span><span>    </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-glyph">-</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042635"><span class="hs-identifier hs-var">o</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#div"><span class="hs-operator hs-var">`div`</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Int
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSizeInBytes"><span class="hs-identifier hs-var">platformWordSizeInBytes</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042638"><span class="hs-identifier hs-var">plat</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-459"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-460"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_offset_extended_sf"><span class="hs-identifier hs-var">dW_CFA_offset_extended_sf</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-461"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042638"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042637"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-462"></span><span>    </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var">pprLEBInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042635"><span class="hs-identifier hs-var">o</span></a></span><span>
</span><span id="line-463"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span id="local-6989586621681042630"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042630"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042629"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042629"><span class="hs-identifier hs-var">g</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwDeref"><span class="hs-identifier hs-type">UwDeref</span></a></span><span> </span><span id="local-6989586621681042628"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042628"><span class="hs-identifier hs-var">uw</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-464"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_expression"><span class="hs-identifier hs-var">dW_CFA_expression</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-465"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042630"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042629"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-466"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; Bool -&gt; UnwindExpr -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUnwindExpr"><span class="hs-identifier hs-var">pprUnwindExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042630"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042628"><span class="hs-identifier hs-var">uw</span></a></span><span>
</span><span id="line-467"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span id="local-6989586621681042626"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042626"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042625"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042625"><span class="hs-identifier hs-var">g</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span id="local-6989586621681042624"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042624"><span class="hs-identifier hs-var">g'</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-468"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042625"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg -&gt; GlobalReg -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042624"><span class="hs-identifier hs-var">g'</span></a></span><span>
</span><span id="line-469"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_same_value"><span class="hs-identifier hs-var">dW_CFA_same_value</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-470"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042626"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042625"><span class="hs-identifier hs-var">g</span></a></span><span>
</span><span id="line-471"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprSetUnwind"><span class="hs-identifier hs-var">pprSetUnwind</span></a></span><span> </span><span id="local-6989586621681042623"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042623"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042622"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042622"><span class="hs-identifier hs-var">g</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe UnwindExpr
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681042621"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042621"><span class="hs-identifier hs-var">uw</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-472"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_val_expression"><span class="hs-identifier hs-var">dW_CFA_val_expression</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-473"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042623"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042622"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-474"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; Bool -&gt; UnwindExpr -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUnwindExpr"><span class="hs-identifier hs-var">pprUnwindExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042623"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042621"><span class="hs-identifier hs-var">uw</span></a></span><span>
</span><span id="line-475"></span><span>
</span><span id="line-476"></span><span class="hs-comment">-- | Print the register number of the given 'GlobalReg' as an unsigned LEB128</span><span>
</span><span id="line-477"></span><span class="hs-comment">-- encoded number.</span><span>
</span><span id="line-478"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-type">pprLEBRegNo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier hs-type">GlobalReg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-479"></span><span id="pprLEBRegNo"><span class="annot"><span class="annottext">pprLEBRegNo :: Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var hs-var">pprLEBRegNo</span></a></span></span><span> </span><span id="local-6989586621681042619"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042619"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="annot"><span class="annottext">(Word -&gt; SDoc) -&gt; (GlobalReg -&gt; Word) -&gt; GlobalReg -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Word8 -&gt; Word) -&gt; (GlobalReg -&gt; Word8) -&gt; GlobalReg -&gt; Word
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-var">dwarfGlobalRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042619"><span class="hs-identifier hs-var">plat</span></a></span><span>
</span><span id="line-480"></span><span>
</span><span id="line-481"></span><span class="hs-comment">-- | Generates a DWARF expression for the given unwind expression. If</span><span>
</span><span id="line-482"></span><span class="hs-comment">-- @spIsCFA@ is true, we see @Sp@ as the frame base CFA where it gets</span><span>
</span><span id="line-483"></span><span class="hs-comment">-- mentioned.</span><span>
</span><span id="line-484"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUnwindExpr"><span class="hs-identifier hs-type">pprUnwindExpr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UnwindExpr"><span class="hs-identifier hs-type">UnwindExpr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-485"></span><span id="pprUnwindExpr"><span class="annot"><span class="annottext">pprUnwindExpr :: Platform -&gt; Bool -&gt; UnwindExpr -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUnwindExpr"><span class="hs-identifier hs-var hs-var">pprUnwindExpr</span></a></span></span><span> </span><span id="local-6989586621681042618"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042618"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681042617"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042617"><span class="hs-identifier hs-var">spIsCFA</span></a></span></span><span> </span><span id="local-6989586621681042616"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042616"><span class="hs-identifier hs-var">expr</span></a></span></span><span>
</span><span id="line-486"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681042604"><span class="annot"><span class="annottext">pprE :: UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var hs-var">pprE</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwConst"><span class="hs-identifier hs-type">UwConst</span></a></span><span> </span><span id="local-6989586621681042602"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042602"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-487"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042602"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042602"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">32</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_lit0"><span class="hs-identifier hs-var">dW_OP_lit0</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; Word8 -&gt; Word8
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042602"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-488"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_consts"><span class="hs-identifier hs-var">dW_OP_consts</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var">pprLEBInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042602"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-comment">-- lazy...</span><span>
</span><span id="line-489"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span> </span><span id="local-6989586621681042599"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042599"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042617"><span class="hs-identifier hs-var">spIsCFA</span></a></span><span>
</span><span id="line-490"></span><span>                             </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042599"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-491"></span><span>                               </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_call_frame_cfa"><span class="hs-identifier hs-var">dW_OP_call_frame_cfa</span></a></span><span>
</span><span id="line-492"></span><span>                               </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnwindExpr -&gt; UnwindExpr -&gt; UnwindExpr
</span><a href="GHC.Cmm.DebugBlock.html#UwPlus"><span class="hs-identifier hs-var">UwPlus</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">GlobalReg -&gt; Int -&gt; UnwindExpr
</span><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-var">UwReg</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="GHC.Cmm.Expr.html#Sp"><span class="hs-identifier hs-var">Sp</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; UnwindExpr
</span><a href="GHC.Cmm.DebugBlock.html#UwConst"><span class="hs-identifier hs-var">UwConst</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042599"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-493"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwReg"><span class="hs-identifier hs-type">UwReg</span></a></span><span> </span><span id="local-6989586621681042597"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042597"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621681042596"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042596"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_breg0"><span class="hs-identifier hs-var">dW_OP_breg0</span></a></span><span class="annot"><span class="annottext">Word8 -&gt; Word8 -&gt; Word8
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; Word8
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#dwarfGlobalRegNo"><span class="hs-identifier hs-var">dwarfGlobalRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042618"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042597"><span class="hs-identifier hs-var">g</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-494"></span><span>                               </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var">pprLEBInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042596"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-495"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwDeref"><span class="hs-identifier hs-type">UwDeref</span></a></span><span> </span><span id="local-6989586621681042594"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042594"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042594"><span class="hs-identifier hs-var">u</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_deref"><span class="hs-identifier hs-var">dW_OP_deref</span></a></span><span>
</span><span id="line-496"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwLabel"><span class="hs-identifier hs-type">UwLabel</span></a></span><span> </span><span id="local-6989586621681042591"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042591"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_addr"><span class="hs-identifier hs-var">dW_OP_addr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var">pprWord</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042618"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681042591"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-497"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwPlus"><span class="hs-identifier hs-type">UwPlus</span></a></span><span> </span><span id="local-6989586621681042589"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042589"><span class="hs-identifier hs-var">u1</span></a></span></span><span> </span><span id="local-6989586621681042588"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042588"><span class="hs-identifier hs-var">u2</span></a></span></span><span class="hs-special">)</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042589"><span class="hs-identifier hs-var">u1</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042588"><span class="hs-identifier hs-var">u2</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_plus"><span class="hs-identifier hs-var">dW_OP_plus</span></a></span><span>
</span><span id="line-498"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwMinus"><span class="hs-identifier hs-type">UwMinus</span></a></span><span> </span><span id="local-6989586621681042585"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042585"><span class="hs-identifier hs-var">u1</span></a></span></span><span> </span><span id="local-6989586621681042584"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042584"><span class="hs-identifier hs-var">u2</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042585"><span class="hs-identifier hs-var">u1</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042584"><span class="hs-identifier hs-var">u2</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_minus"><span class="hs-identifier hs-var">dW_OP_minus</span></a></span><span>
</span><span id="line-499"></span><span>        </span><span class="annot"><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.DebugBlock.html#UwTimes"><span class="hs-identifier hs-type">UwTimes</span></a></span><span> </span><span id="local-6989586621681042581"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042581"><span class="hs-identifier hs-var">u1</span></a></span></span><span> </span><span id="local-6989586621681042580"><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042580"><span class="hs-identifier hs-var">u2</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042581"><span class="hs-identifier hs-var">u1</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042580"><span class="hs-identifier hs-var">u2</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_OP_mul"><span class="hs-identifier hs-var">dW_OP_mul</span></a></span><span>
</span><span id="line-500"></span><span>    </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.uleb128 2f-1f&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-comment">-- DW_FORM_block length</span><span>
</span><span id="line-501"></span><span>       </span><span class="hs-comment">-- computed as the difference of the following local labels 2: and 1:</span><span>
</span><span id="line-502"></span><span>       </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;1:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-503"></span><span>       </span><span class="annot"><span class="annottext">UnwindExpr -&gt; SDoc
</span><a href="#local-6989586621681042604"><span class="hs-identifier hs-var">pprE</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindExpr
</span><a href="#local-6989586621681042616"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-504"></span><span>       </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;2:&quot;</span></span><span>
</span><span id="line-505"></span><span>
</span><span id="line-506"></span><span class="hs-comment">-- | Generate code for re-setting the unwind information for a</span><span>
</span><span id="line-507"></span><span class="hs-comment">-- register to @undefined@</span><span>
</span><span id="line-508"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUndefUnwind"><span class="hs-identifier hs-type">pprUndefUnwind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#GlobalReg"><span class="hs-identifier hs-type">GlobalReg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-509"></span><span id="pprUndefUnwind"><span class="annot"><span class="annottext">pprUndefUnwind :: Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprUndefUnwind"><span class="hs-identifier hs-var hs-var">pprUndefUnwind</span></a></span></span><span> </span><span id="local-6989586621681042578"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042578"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042577"><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042577"><span class="hs-identifier hs-var">g</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="GHC.CmmToAsm.Dwarf.Constants.html#dW_CFA_undefined"><span class="hs-identifier hs-var">dW_CFA_undefined</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-510"></span><span>                         </span><span class="annot"><span class="annottext">Platform -&gt; GlobalReg -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBRegNo"><span class="hs-identifier hs-var">pprLEBRegNo</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042578"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="annot"><span class="annottext">GlobalReg
</span><a href="#local-6989586621681042577"><span class="hs-identifier hs-var">g</span></a></span><span>
</span><span id="line-511"></span><span>
</span><span id="line-512"></span><span>
</span><span id="line-513"></span><span class="hs-comment">-- | Align assembly at (machine) word boundary</span><span>
</span><span id="line-514"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#wordAlign"><span class="hs-identifier hs-type">wordAlign</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-515"></span><span id="wordAlign"><span class="annot"><span class="annottext">wordAlign :: Platform -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#wordAlign"><span class="hs-identifier hs-var hs-var">wordAlign</span></a></span></span><span> </span><span id="local-6989586621681042575"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042575"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-516"></span><span>  </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.align &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042575"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-517"></span><span>    </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSDarwin"><span class="hs-identifier hs-var">OSDarwin</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; PlatformWordSize
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSize"><span class="hs-identifier hs-var hs-var">platformWordSize</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042575"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-518"></span><span>      </span><span class="annot"><span class="annottext">PlatformWordSize
</span><a href="../../ghc-boot/src/GHC.Platform.html#PW8"><span class="hs-identifier hs-var">PW8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'3'</span></span><span>
</span><span id="line-519"></span><span>      </span><span class="annot"><span class="annottext">PlatformWordSize
</span><a href="../../ghc-boot/src/GHC.Platform.html#PW4"><span class="hs-identifier hs-var">PW4</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'2'</span></span><span>
</span><span id="line-520"></span><span>    </span><span id="local-6989586621681042569"><span class="annot"><span class="annottext">OS
</span><a href="#local-6989586621681042569"><span class="hs-identifier hs-var">_other</span></a></span></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Int
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSizeInBytes"><span class="hs-identifier hs-var">platformWordSizeInBytes</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042575"><span class="hs-identifier hs-var">plat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-521"></span><span>
</span><span id="line-522"></span><span class="hs-comment">-- | Assembly for a single byte of constant DWARF data</span><span>
</span><span id="line-523"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-type">pprByte</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word8"><span class="hs-identifier hs-type">Word8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-524"></span><span id="pprByte"><span class="annot"><span class="annottext">pprByte :: Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var hs-var">pprByte</span></a></span></span><span> </span><span id="local-6989586621681042568"><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042568"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.byte &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word8 -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word8
</span><a href="#local-6989586621681042568"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Word</span></span><span class="hs-special">)</span><span>
</span><span id="line-525"></span><span>
</span><span id="line-526"></span><span class="hs-comment">-- | Assembly for a two-byte constant integer</span><span>
</span><span id="line-527"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprHalf"><span class="hs-identifier hs-type">pprHalf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word16"><span class="hs-identifier hs-type">Word16</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-528"></span><span id="pprHalf"><span class="annot"><span class="annottext">pprHalf :: Word16 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprHalf"><span class="hs-identifier hs-var hs-var">pprHalf</span></a></span></span><span> </span><span id="local-6989586621681042567"><span class="annot"><span class="annottext">Word16
</span><a href="#local-6989586621681042567"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.short&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word16 -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word16
</span><a href="#local-6989586621681042567"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Word</span></span><span class="hs-special">)</span><span>
</span><span id="line-529"></span><span>
</span><span id="line-530"></span><span class="hs-comment">-- | Assembly for a constant DWARF flag</span><span>
</span><span id="line-531"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFlag"><span class="hs-identifier hs-type">pprFlag</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-532"></span><span id="pprFlag"><span class="annot"><span class="annottext">pprFlag :: Bool -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprFlag"><span class="hs-identifier hs-var hs-var">pprFlag</span></a></span></span><span> </span><span id="local-6989586621681042566"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042566"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681042566"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0xff</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Word8
</span><span class="hs-number">0x00</span></span><span class="hs-special">)</span><span>
</span><span id="line-533"></span><span>
</span><span id="line-534"></span><span class="hs-comment">-- | Assembly for 4 bytes of dynamic DWARF data</span><span>
</span><span id="line-535"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-type">pprData4'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-536"></span><span id="pprData4%27"><span class="annot"><span class="annottext">pprData4' :: SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var hs-var">pprData4'</span></a></span></span><span> </span><span id="local-6989586621681042565"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042565"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042565"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-537"></span><span>
</span><span id="line-538"></span><span class="hs-comment">-- | Assembly for 4 bytes of constant DWARF data</span><span>
</span><span id="line-539"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4"><span class="hs-identifier hs-type">pprData4</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Word</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-540"></span><span id="pprData4"><span class="annot"><span class="annottext">pprData4 :: Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4"><span class="hs-identifier hs-var hs-var">pprData4</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var">pprData4'</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; (Word -&gt; SDoc) -&gt; Word -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span>
</span><span id="line-541"></span><span>
</span><span id="line-542"></span><span class="hs-comment">-- | Assembly for a DWARF word of dynamic data. This means 32 bit, as</span><span>
</span><span id="line-543"></span><span class="hs-comment">-- we are generating 32 bit DWARF.</span><span>
</span><span id="line-544"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwWord"><span class="hs-identifier hs-type">pprDwWord</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-545"></span><span id="pprDwWord"><span class="annot"><span class="annottext">pprDwWord :: SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwWord"><span class="hs-identifier hs-var hs-var">pprDwWord</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprData4%27"><span class="hs-identifier hs-var">pprData4'</span></a></span><span>
</span><span id="line-546"></span><span>
</span><span id="line-547"></span><span class="hs-comment">-- | Assembly for a machine word of dynamic data. Depends on the</span><span>
</span><span id="line-548"></span><span class="hs-comment">-- architecture we are currently generating code for.</span><span>
</span><span id="line-549"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-type">pprWord</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-550"></span><span id="pprWord"><span class="annot"><span class="annottext">pprWord :: Platform -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprWord"><span class="hs-identifier hs-var hs-var">pprWord</span></a></span></span><span> </span><span id="local-6989586621681042564"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042564"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042563"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042563"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-551"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; PlatformWordSize
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformWordSize"><span class="hs-identifier hs-var hs-var">platformWordSize</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042564"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-552"></span><span>    </span><span class="annot"><span class="annottext">PlatformWordSize
</span><a href="../../ghc-boot/src/GHC.Platform.html#PW4"><span class="hs-identifier hs-var">PW4</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042563"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-553"></span><span>    </span><span class="annot"><span class="annottext">PlatformWordSize
</span><a href="../../ghc-boot/src/GHC.Platform.html#PW8"><span class="hs-identifier hs-var">PW8</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.quad &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042563"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-554"></span><span>
</span><span id="line-555"></span><span class="hs-comment">-- | Prints a number in &quot;little endian base 128&quot; format. The idea is</span><span>
</span><span id="line-556"></span><span class="hs-comment">-- to optimize for small numbers by stopping once all further bytes</span><span>
</span><span id="line-557"></span><span class="hs-comment">-- would be 0. The highest bit in every byte signals whether there</span><span>
</span><span id="line-558"></span><span class="hs-comment">-- are further bytes to read.</span><span>
</span><span id="line-559"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-type">pprLEBWord</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Word</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-560"></span><span id="pprLEBWord"><span class="annot"><span class="annottext">pprLEBWord :: Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var hs-var">pprLEBWord</span></a></span></span><span> </span><span id="local-6989586621681042562"><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042562"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042562"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Word -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">128</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042562"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-561"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Word -&gt; Word8) -&gt; Word -&gt; Word8
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">128</span></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Word -&gt; Word
forall a. Bits a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/Data.Bits.html#.%7C."><span class="hs-operator hs-var">.|.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042562"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Word -&gt; Word
forall a. Bits a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/Data.Bits.html#.%26."><span class="hs-operator hs-var">.&amp;.</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">127</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-562"></span><span>                           </span><span class="annot"><span class="annottext">Word -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBWord"><span class="hs-identifier hs-var">pprLEBWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621681042562"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Int -&gt; Word
forall a. Bits a =&gt; a -&gt; Int -&gt; a
</span><a href="../../base/src/Data.Bits.html#shiftR"><span class="hs-operator hs-var">`shiftR`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">7</span></span><span class="hs-special">)</span><span>
</span><span id="line-563"></span><span>
</span><span id="line-564"></span><span class="hs-comment">-- | Same as @pprLEBWord@, but for a signed number</span><span>
</span><span id="line-565"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-type">pprLEBInt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-566"></span><span id="pprLEBInt"><span class="annot"><span class="annottext">pprLEBInt :: Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var hs-var">pprLEBInt</span></a></span></span><span> </span><span id="local-6989586621681042558"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042558"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042558"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="hs-glyph">-</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">64</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042558"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">64</span></span><span>
</span><span id="line-567"></span><span>                        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042558"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Bits a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/Data.Bits.html#.%26."><span class="hs-operator hs-var">.&amp;.</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">127</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-568"></span><span>            </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprByte"><span class="hs-identifier hs-var">pprByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Word8
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Word8) -&gt; Int -&gt; Word8
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">128</span></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Bits a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/Data.Bits.html#.%7C."><span class="hs-operator hs-var">.|.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042558"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Bits a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/Data.Bits.html#.%26."><span class="hs-operator hs-var">.&amp;.</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">127</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-569"></span><span>                          </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprLEBInt"><span class="hs-identifier hs-var">pprLEBInt</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042558"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Bits a =&gt; a -&gt; Int -&gt; a
</span><a href="../../base/src/Data.Bits.html#shiftR"><span class="hs-operator hs-var">`shiftR`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">7</span></span><span class="hs-special">)</span><span>
</span><span id="line-570"></span><span>
</span><span id="line-571"></span><span class="hs-comment">-- | Generates a dynamic null-terminated string. If required the</span><span>
</span><span id="line-572"></span><span class="hs-comment">-- caller needs to make sure that the string is escaped properly.</span><span>
</span><span id="line-573"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString%27"><span class="hs-identifier hs-type">pprString'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-574"></span><span id="pprString%27"><span class="annot"><span class="annottext">pprString' :: SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString%27"><span class="hs-identifier hs-var hs-var">pprString'</span></a></span></span><span> </span><span id="local-6989586621681042557"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042557"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.asciz \&quot;&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042557"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&quot;'</span></span><span>
</span><span id="line-575"></span><span>
</span><span id="line-576"></span><span class="hs-comment">-- | Generate a string constant. We take care to escape the string.</span><span>
</span><span id="line-577"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-type">pprString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-578"></span><span id="pprString"><span class="annot"><span class="annottext">pprString :: String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString"><span class="hs-identifier hs-var hs-var">pprString</span></a></span></span><span> </span><span id="local-6989586621681042556"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042556"><span class="hs-identifier hs-var">str</span></a></span></span><span>
</span><span id="line-579"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprString%27"><span class="hs-identifier hs-var">pprString'</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; SDoc) -&gt; String -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#escapeChar"><span class="hs-identifier hs-var">escapeChar</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; [SDoc]) -&gt; String -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-580"></span><span>    </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042556"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Int -&gt; Bool
forall a. [a] -&gt; Int -&gt; Bool
</span><a href="GHC.Utils.Misc.html#lengthIs"><span class="hs-operator hs-var">`lengthIs`</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Int
</span><a href="GHC.Utils.Encoding.html#utf8EncodedLength"><span class="hs-identifier hs-var">utf8EncodedLength</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042556"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-581"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042556"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-582"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">(Word8 -&gt; Char) -&gt; [Word8] -&gt; String
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Char
</span><a href="../../base/src/GHC.Char.html#chr"><span class="hs-identifier hs-var">chr</span></a></span><span> </span><span class="annot"><span class="annottext">(Int -&gt; Char) -&gt; (Word8 -&gt; Int) -&gt; Word8 -&gt; Char
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Word8 -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Word8] -&gt; String) -&gt; [Word8] -&gt; String
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; [Word8]
</span><a href="../../bytestring/src/Data.ByteString.html#unpack"><span class="hs-identifier hs-var">BS.unpack</span></a></span><span> </span><span class="annot"><span class="annottext">(ByteString -&gt; [Word8]) -&gt; ByteString -&gt; [Word8]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; ByteString
</span><a href="GHC.Data.FastString.html#bytesFS"><span class="hs-identifier hs-var">bytesFS</span></a></span><span> </span><span class="annot"><span class="annottext">(FastString -&gt; ByteString) -&gt; FastString -&gt; ByteString
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#mkFastString"><span class="hs-identifier hs-var">mkFastString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681042556"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-583"></span><span>
</span><span id="line-584"></span><span class="hs-comment">-- | Escape a single non-unicode character</span><span>
</span><span id="line-585"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#escapeChar"><span class="hs-identifier hs-type">escapeChar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-586"></span><span id="escapeChar"><span class="annot"><span class="annottext">escapeChar :: Char -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#escapeChar"><span class="hs-identifier hs-var hs-var">escapeChar</span></a></span></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\\\&quot;</span></span><span>
</span><span id="line-587"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#escapeChar"><span class="hs-identifier hs-var">escapeChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\&quot;'</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\\&quot;&quot;</span></span><span>
</span><span id="line-588"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#escapeChar"><span class="hs-identifier hs-var">escapeChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\n&quot;</span></span><span>
</span><span id="line-589"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#escapeChar"><span class="hs-identifier hs-var">escapeChar</span></a></span><span> </span><span id="local-6989586621681042547"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621681042547"><span class="hs-identifier hs-var">c</span></a></span></span><span>
</span><span id="line-590"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAscii"><span class="hs-identifier hs-var">isAscii</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621681042547"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isPrint"><span class="hs-identifier hs-var">isPrint</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621681042547"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621681042547"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span> </span><span class="hs-comment">-- prevents trigraph warnings</span><span>
</span><span id="line-591"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621681042547"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-592"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-593"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\\'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Char
</span><a href="../../base/src/GHC.Show.html#intToDigit"><span class="hs-identifier hs-var">intToDigit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042542"><span class="hs-identifier hs-var">ch</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#div"><span class="hs-operator hs-var">`div`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">64</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-594"></span><span>                 </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Char
</span><a href="../../base/src/GHC.Show.html#intToDigit"><span class="hs-identifier hs-var">intToDigit</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042542"><span class="hs-identifier hs-var">ch</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#div"><span class="hs-operator hs-var">`div`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#mod"><span class="hs-operator hs-var">`mod`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-595"></span><span>                 </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Char
</span><a href="../../base/src/GHC.Show.html#intToDigit"><span class="hs-identifier hs-var">intToDigit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681042542"><span class="hs-identifier hs-var">ch</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#mod"><span class="hs-operator hs-var">`mod`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-596"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681042542"><span class="annot"><span class="annottext">ch :: Int
</span><a href="#local-6989586621681042542"><span class="hs-identifier hs-var hs-var">ch</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Int
</span><a href="../../base/src/GHC.Base.html#ord"><span class="hs-identifier hs-var">ord</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621681042547"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-597"></span><span>
</span><span id="line-598"></span><span class="hs-comment">-- | Generate an offset into another section. This is tricky because</span><span>
</span><span id="line-599"></span><span class="hs-comment">-- this is handled differently depending on platform: Mac Os expects</span><span>
</span><span id="line-600"></span><span class="hs-comment">-- us to calculate the offset using assembler arithmetic. Linux expects</span><span>
</span><span id="line-601"></span><span class="hs-comment">-- us to just reference the target directly, and will figure out on</span><span>
</span><span id="line-602"></span><span class="hs-comment">-- their own that we actually need an offset. Finally, Windows has</span><span>
</span><span id="line-603"></span><span class="hs-comment">-- a special directive to refer to relative offsets. Fun.</span><span>
</span><span id="line-604"></span><span class="annot"><a href="GHC.CmmToAsm.Dwarf.Types.html#sectionOffset"><span class="hs-identifier hs-type">sectionOffset</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-605"></span><span id="sectionOffset"><span class="annot"><span class="annottext">sectionOffset :: Platform -&gt; SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#sectionOffset"><span class="hs-identifier hs-var hs-var">sectionOffset</span></a></span></span><span> </span><span id="local-6989586621681042540"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042540"><span class="hs-identifier hs-var">plat</span></a></span></span><span> </span><span id="local-6989586621681042539"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042539"><span class="hs-identifier hs-var">target</span></a></span></span><span> </span><span id="local-6989586621681042538"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042538"><span class="hs-identifier hs-var">section</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-606"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681042540"><span class="hs-identifier hs-var">plat</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-607"></span><span>    </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSDarwin"><span class="hs-identifier hs-var">OSDarwin</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwWord"><span class="hs-identifier hs-var">pprDwWord</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042539"><span class="hs-identifier hs-var">target</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042538"><span class="hs-identifier hs-var">section</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-608"></span><span>    </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSMinGW32"><span class="hs-identifier hs-var">OSMinGW32</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.secrel32 &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042539"><span class="hs-identifier hs-var">target</span></a></span><span>
</span><span id="line-609"></span><span>    </span><span id="local-6989586621681042536"><span class="annot"><span class="annottext">OS
</span><a href="#local-6989586621681042536"><span class="hs-identifier hs-var">_other</span></a></span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.Dwarf.Types.html#pprDwWord"><span class="hs-identifier hs-var">pprDwWord</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681042539"><span class="hs-identifier hs-var">target</span></a></span><span>
</span><span id="line-610"></span></pre></body></html>